About gpucc and clang

Hello,

Sorry if this email is off topic. I’m quite new here.

Recently I came across with gpucc[1] open-source cuda compiler. I’m wondering that is it same thing compiling CUDA with clang[2], or it’s a something branch of clang front-end ? Because I can see its optimizations codes at NVPTX backend target / LLVM. Also as I understood, it’s doing all optimizations in the LLVM-IR level. Is there any truth to something ?

[1] https://www.youtube.com/watch?v=JHfb8z-iSYk
[2]http://llvm.org/docs/CompileCudaWithLLVM.html

WARNING / LEGAL TEXT: This message is intended only for the use of the individual or entity to which it is addressed and may contain information which is privileged, confidential, proprietary, or exempt from disclosure under applicable law. If you are not the intended recipient or the person responsible for delivering the message to the intended recipient, you are strictly prohibited from disclosing, distributing, copying, or in any way using this message. If you have received this communication in error, please notify the sender and destroy and delete any copies you may have received.

http://www.bsc.es/disclaimer

Hello,

Sorry if this email is off topic. I'm quite new here.

Recently I came across with gpucc[1] open-source cuda compiler. I'm
wondering that is it same thing compiling CUDA with clang[2], or it's a
something branch of clang front-end ?

gpucc is using Clang and LLVM, and most of it has already made it into LLVM
and Clang upstream. Especially the LLVM parts (optimizations) are all
there. As you found, link [2] provides some details on how to use it.
Upstreaming work is still ongoing. There are many patches running for this
on cfe-commits, for example
http://llvm.org/viewvc/llvm-project?rev=253389&view=rev and others (note
most of them have [CUDA] in the subject, so it's each to search for).

Because I can see its optimizations codes at NVPTX backend target / LLVM.
Also as I understood, it's doing all optimizations in the LLVM-IR level. Is
there any truth to something ?

Optimizations are done in the various LLVM stages, mostly LLVM IR. The
device-side product is PTX, which the NVIDIA driver further optimizes and
lowers to GPU-specific ISA.

Eli