HNHacker News
TopNewBestAskShowJobs

wujingyue

15 karma · joined April 25, 2016

submissionscomments
wujingyue··on GPUCC – An Open-Source GPGPU Compiler
That is a very valid concern and a key motivation for the proposed StreamExecutor project (http://lists.llvm.org/pipermail/llvm-dev/2016-March/096576.h...).
wujingyue··on GPUCC – An Open-Source GPGPU Compiler
Thanks for your interest, and hope you like it!

Yes, it is currently incomplete, but I'd say at least 80% of the optimizations are upstreamed already. Also, folks in the LLVM community are actively working on that. For example, Justin Lebar recently pushed http://reviews.llvm.org/D18626 that added the speculative execution pass to -O3.

Regarding performance, one thing worth noting is that missing one optimization does not necessarily cause significant slowdown on the benchmarks you care about. For example, the memory-space alias analysis only noticeably affects one benchmark in the Rodinia benchmark suite.

Regarding your second question, the short answer is no. The Clang/LLVM version uses a different architecture (as mentioned in http://wujingyue.com/docs/gpucc-talk.pdf) from the internal version. The LLVM version offers better functionality and compilation time, and is much easier to maintain and improve in the future. It would cost even more effort to upstream the internal version than to make all optimizations work with the new architecture.

wujingyue··on GPUCC – An Open-Source GPGPU Compiler
http://llvm.org/docs/CompileCudaWithLLVM.html
wujingyue··on GPUCC – An Open-Source GPGPU Compiler
You are right that gpucc still depends on NVIDIA's ptxas tool that translates PTX to native binaries. NVIDIA does not publish the specification of their native binaries. Besides that, it is fully open-source.
wujingyue··on GPUCC – An Open-Source GPGPU Compiler
It currently generates NVIDIA's PTX only.