What language and compiler to write ATI GPU code for?

990 views Asked by At

I know Nvidia has CUDA, but what does ATI have? I dont want to use OpenCL because I want to keep as low level to the hardware as possible.

Is it brook, or stream?

The documentation available is pretty pathetic! CUDA seems easy to get programming, but I want to use ATI specifically because of their hardware.

1

There are 1 answers

0
Krazy Glew On

OpenCL is AMD's currently preferred GPU/compute language.

Brook is deprecated.

However, you can write code at a very low level, using AMD's shader and kernel analyzer http://developer.amd.com/tools/shader/Pages/default.aspx. http://developer.amd.com/tools/AMDAPPKernelAnalyzer/Pages/default.aspx

E.g. http://developer.amd.com/tools/shader/PublishingImages/GSA.png shows OpenCL code, and the Radeon 5870 assembly produced.

You can actually code directly in several forms of "assembly". Or at least you could - the webpages no longer mention this. (I used to have this installed for tuning and testing, but do not at the moment.)

More usually, you can code in any of several forms of AMD IL, Intermediate Language, which is closer to the machine than OpenCL. The kernel analyzer web page says "If your kernel is an IL kernel Stream, KernelAnalyzer will automatically compile the IL..."

I would recommend that you use OpenCL, and then look at the disassembly and tweak the OpenCL code to be better tuned. But you can work in IL, and probably still can work at an even lower level.