[LLVMdev] Emitting IR in older formats (for NVVM)

Justin Holewinski justin.holewinski at gmail.com
Tue Jan 13 18:30:46 PST 2015


Do you have some examples you can share?  I would be interested in taking a
look to see what we can do to help improve the performance of NVPTX,
especially relative to equivalent OpenCL code.

On Tue, Jan 13, 2015 at 4:01 PM, Jonathan Ragan-Kelley <jrk at csail.mit.edu>
wrote:

>  Thanks, all.
>
> I didn’t realize a 7.0 RC was public and changed to 3.4—I will go down
> that road for now, though I’ll probably also look into integrating variants
> of the SPIR converter in the future.
>
>> Another possibility is to skip libnvvm altogether and use LLVM's NVPTX
>> target.  This is of course harder since you have to configure the passes
>> yourself instead of just calling a few C functions, but it does give you
>> more control over the optimization pipeline and gives you full visibility
>> into the compiler.  Unfortunately, there are some NVVM-specific
>> optimizations missing upstream that we are not able to contribute back.
>>
> I appreciate the suggestion, but this is actually for a project which has
> been using NVPTX for years. The problem is that we see (dramatically)
> better performance from our OpenCL backend (via CL C source kernels) on
> NVIDIA hardware simply because kernels actually get optimized through the
> full NVCC-style stack. Based on related experience in other projects, I
> expect NVVM to provide a similar or greater bump over NVPTX. In short, I’d
> *love* to stick with NVPTX and the open source stack in LLVM trunk, but
> until it provides competitive performance on real programs (which, in my
> experience so far, it ~never does), it’s unfortunately not a strong
> alternative.
>



-- 

Thanks,

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


More information about the llvm-dev mailing list