[LLVMdev] Compiling to NVPTX

Justin Holewinski justin.holewinski at gmail.com
Tue Jan 22 13:20:13 PST 2013

You caught me right as I'm leaving the office, so this reply will be a bit
brief until I have time to write something more lengthy...

Generally, the only conventions you need to follow for simple CUDA kernels
is to use ptx_kernel as the calling convention, and use address space 1 for
global-address pointers.  The generated PTX is consumable by the Driver API
(see CUDA samples for using the Driver API for loading/executing PTX

In the near future, I hope to put together a bit of a tutorial on this.  I
am well aware that there is a lack of information here, and I hope to
correct that soon!

On Tue, Jan 22, 2013 at 3:56 PM, Timothy Baldridge <tbaldridge at gmail.com>wrote:

> I'm in the process of writing a library and giving a talk about writing
> compilers using LLVM (llvm-c) and Clojure. As part of my talk I'd like to
> give an example of a program running on CUDA.
> Are there any papers, tutorials, examples, on writing a custom frontend
> for NVPTX? For instance, I'm trying to figure out how to get access to
> "global" variables like blockidx. I know that libc won't be accessible  so
> I'm probably just going to give a demonstration of a image blur filter
> written in a custom-built programming language
> I was going to try simply taking my llvm module and having llvm write out
> the object file using the nvptx triple. But to be honest here, I'm just
> shooting in the dark at this point.
> Any information would be greatly appreciated.
> Timothy
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev



Justin Holewinski
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130122/a0baaccf/attachment.html>

More information about the llvm-dev mailing list