Show HN: Luminal – Open-source, search-based GPU compiler
61–70 of 70 posts
Re: Show HN: Luminal – Open-source, search-based GPU compiler
#62Earlier quoted context omitted.
Your description is exactly right. We create a search space of all possible kernels and find the best ones based on runtime. The best heuristic is no heuristic. This obviously creates a combinatorial problem that we mitigate with smarter search. The kernels are run on the computer the compiler is running on. Since runtime is our gold standard it will search for the best configuration for your hardware target. As long…
> that we mitigate with smarter search aka "a heuristic"
Re: Show HN: Luminal – Open-source, search-based GPU compiler
#63Re: Show HN: Luminal – Open-source, search-based GPU compiler
#64Earlier quoted context omitted.
Your description is exactly right. We create a search space of all possible kernels and find the best ones based on runtime. The best heuristic is no heuristic. This obviously creates a combinatorial problem that we mitigate with smarter search. The kernels are run on the computer the compiler is running on. Since runtime is our gold standard it will search for the best configuration for your hardware target. As long…
> that we mitigate with smarter search aka "a heuristic"
Re: Show HN: Luminal – Open-source, search-based GPU compiler
#65Earlier quoted context omitted.
Your description is exactly right. We create a search space of all possible kernels and find the best ones based on runtime. The best heuristic is no heuristic. This obviously creates a combinatorial problem that we mitigate with smarter search. The kernels are run on the computer the compiler is running on. Since runtime is our gold standard it will search for the best configuration for your hardware target. As long…
> that we mitigate with smarter search aka "a heuristic"
Re: Show HN: Luminal – Open-source, search-based GPU compiler
#66Earlier quoted context omitted.
very similar to superoptimisation, but most superoptimisers try to tackle turing-complete code. by just doing a very limited space of computation (linear algebra with 12 primitive ops) the search remains tractable. the search space is designed to remain logically equivalent at all times, by virtue of how its built (applying rewrite rules we know dont change the logical equivalence).
If the search space never leaves the programs that are equivalent to the original specification, that will probably limit the optimisations you can discover. (E.g. if you start out with standard matmul, you will not discover Strassen's algorithm.) This is not a criticism, I'm just trying to understand your algorithm.
all the optimizations for matmul so far have been straightforward trajectories from naive (tiling, smem caching, tensor core offload, etc.)
Re: Show HN: Luminal – Open-source, search-based GPU compiler
#67Earlier quoted context omitted.
If the search space never leaves the programs that are equivalent to the original specification, that will probably limit the optimisations you can discover. (E.g. if you start out with standard matmul, you will not discover Strassen's algorithm.) This is not a criticism, I'm just trying to understand your algorithm.
could be...im not opposed to looking into this to see if there's no possible trajectory from naive to strassen's without leaving logical equivalency. all the optimizations for matmul so far have been straightforward trajectories from naive (tiling, smem caching, tensor core offload, etc.)
https://cacm.acm.org/research/stochastic-program-optimizatio...
Re: Show HN: Luminal – Open-source, search-based GPU compiler
#68Re: Show HN: Luminal – Open-source, search-based GPU compiler
#69Earlier quoted context omitted.
Your description is exactly right. We create a search space of all possible kernels and find the best ones based on runtime. The best heuristic is no heuristic. This obviously creates a combinatorial problem that we mitigate with smarter search. The kernels are run on the computer the compiler is running on. Since runtime is our gold standard it will search for the best configuration for your hardware target. As long…
How long does this typically take? It sounds time consuming. Also, it seems like this could be similar to doing a GA?