Earlier 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?
Show HN: Luminal – Open-source, search-based GPU compiler
21–30 of 70 posts
Re: Show HN: Luminal – Open-source, search-based GPU compiler
#22Also, what about CUDA alternatives like ROCm?
Re: Show HN: Luminal – Open-source, search-based GPU compiler
#23Re: Show HN: Luminal – Open-source, search-based GPU compiler
#24Re: Show HN: Luminal – Open-source, search-based GPU compiler
#25When you say (in the video) that you can target more exotic hardware, what about things FGPA accelerators (maybe taking advantage of TVM's FPGA backend)? Also, what about CUDA alternatives like ROCm?
Re: Show HN: Luminal – Open-source, search-based GPU compiler
#26Cool! How is this project different from the tuning process in TVM?
Re: Show HN: Luminal – Open-source, search-based GPU compiler
#27When you say (in the video) that you can target more exotic hardware, what about things FGPA accelerators (maybe taking advantage of TVM's FPGA backend)? Also, what about CUDA alternatives like ROCm?
Yup. We are totally hardware agnostic
Re: Show HN: Luminal – Open-source, search-based GPU compiler
#28- Can you give some more insight on why 12 ops suffice for representing your input program?
- With such a small number of ops, isn't your search space full of repeat patterns? I understand the will to have no predefined heuristics, but it seems that learning some heuristics/patterns would massively help reduce the space.
Re: Show HN: Luminal – Open-source, search-based GPU compiler
#29I have a background in program analysis, but I'm less familiar with the kind of kernels you are optimising. - Can you give some more insight on why 12 ops suffice for representing your input program? - With such a small number of ops, isn't your search space full of repeat patterns? I understand the will to have no predefined heuristics, but it seems that learning some heuristics/patterns would massively help reduce…
the search does common subexpression elimination by default. if two patterns are unioned in the search space, it applies that union to every occurrence of that pattern at the same time, so using e-graphs it helps keep the search space smaller.
Re: Show HN: Luminal – Open-source, search-based GPU compiler
#30I see you guys are using Egg/Egglog! I've been mildly interested in egraphs for quite a while, glad to see they're gaining traction!