[LLVMdev] RFC: R600, a new backend for AMD GPUs

Justin Holewinski justin.holewinski at gmail.com
Fri May 25 14:37:26 PDT 2012


Hi Tom,

I have a higher-level question regarding this back-end.  If I have an LLVM
IR module and run it through this back-end, it seems like the only output
option is a binary format.  Is this a device binary, or another
intermediate format?

If the input LLVM IR module was a compute kernel, how would I go about
executing it on an AMD GPU?  Can I use the APP SDK to load the binary,
perhaps through the CAL interfaces?  How about the OpenCL binary interface?

On Tue, Apr 24, 2012 at 2:52 PM, Tom Stellard <tstellar at gmail.com> wrote:

> On Mon, Mar 26, 2012 at 12:50:07PM -0400, Tom Stellard wrote:
> > Hi,
> >
> > We've been working on an LLVM backend for the previous generation of AMD
> > GPUs (HD 2XXX - HD 6XXX) and we would like submit it for inclusion in the
> > main LLVM tree.  The latest code can be found in this git repository:
> > http://cgit.freedesktop.org/~tstellar/llvm/ in the r600-initial-review
> > branch or if you prefer you can download the entire tree with this link:
> >
> http://cgit.freedesktop.org/~tstellar/llvm/snapshot/llvm-r600-initial-review.tar.gz
> > The R600 backend is located in lib/Target/AMDIL
> >
> > First, a brief description of the backend:
> >
> > The r600 backend is being developed as a part of the Open Source compute
> > stack in Mesa (http://www.mesa3d.org/), which uses the Gallium API.
> > It uses large portions of the AMDIL backend which was open-sourced
> > last December and you'll notice the TargetMachine for this backend
> > (AMDGPUTargetMachine) is a sub-class of AMDILTargetMachine.  We are also
> > currently working on an LLVM backend for Southern Islands GPUs, and we
> > would like to get that code into the LLVM tree as well, once it has been
> > approved for release.  The Southern Islands backend will be used for
> > compute shaders and also graphics shaders in the AMD open source 3D
> driver.
> >
> > One thing that I would like to point out is that all of the
> > code from the AMDIL backend is licensed under a BSD license with an
> > additional clause that deals with United States export laws (non-AMDIL
> > code is licensed with the University of Illinois Open Source License).
> > Will the LLVM project accept a backend with code licensed under this BSD
> > license?  We would prefer to keep this license, but if it isn't
> > acceptable, we can try to relicense it.
> >
> > Second, I am looking for two categories of feedback for the r600 backend:
> >
> > 1. What changes do I need to make to get the backend included in the
> LLVM tree.
> > 2. What changes can I make to improve the backend overall.
> >
> > My top priority is to get the backend into the LLVM tree, so
> > when you provide feedback if you could be clear about what
> > changes are needed to get the backend into the tree versus what changes
> > are just general improvements, I would appreciate it.
> >
> > Lastly, I did a very brief run through of the code to check the coding
> style,
> > but I know there are still some violations.  For example, a lot of the
> > file headers are missing file descriptions.  I didn't want to spend a
> > lot of time on coding style changes prior to the initial review in case
> > I was asked to make big changes to the code, so I will address these
> > issues once I have received an OK on the organization of the code.
> > However, please still point out coding style errors to me, and I'll be
> > sure to fix them during the final pass.
> >
> > Looking forward to your feedback.
> >
>
> Hi,
>
> Based on some feedback I received on IRC today, it sounds like this
> is just too much code to review at once.  I'm going to try to strip
> the R600 backend down to the bare minimum that is needed for our Mesa
> drivers and then repost the code to the list.  Hopefully, this will make it
> easier for people to review.
>
> -Tom
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>



-- 

Thanks,

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


More information about the llvm-dev mailing list