Hi,
I am an experienced C/C++/Assembly programmer and I have been writing a compiler for a parallel programming language that I have been developing for 23 years. Now that I have a parser well under-way, I am looking at the possiblity of not just supporting AMD64/SSE but the GPGPL method of massive parallelism using Stream processors. Although the OpenCL tools are interesting, I would prefer to generate Intermediate Code directly. From what I gather, this would be IL which looks something like x86 assembler. What documents are there that explain the language/architecture and what SDK am I going to need ? Any helpful information will be appreciated. My current development host is Windows XP-32 but my target will be a Phenom II X4 running Windows 7-64.
Thanks
Originally posted by: Tapejara Hi,
I am an experienced C/C++/Assembly programmer and I have been writing a compiler for a parallel programming language that I have been developing for 23 years. Now that I have a parser well under-way, I am looking at the possiblity of not just supporting AMD64/SSE but the GPGPL method of massive parallelism using Stream processors. Although the OpenCL tools are interesting, I would prefer to generate Intermediate Code directly. From what I gather, this would be IL which looks something like x86 assembler. What documents are there that explain the language/architecture and what SDK am I going to need ? Any helpful information will be appreciated. My current development host is Windows XP-32 but my target will be a Phenom II X4 running Windows 7-64.
Tapejara,
You can use SDK2.0 available at http://developer.amd.com/gpu/ATIStreamSDK/Pages/default.aspx.
Please read ATI_Intermediate_Language_(IL)_Specification_v2.pdf doc available at http://developer.amd.com/gpu/ATIStreamSDK/pages/Documentation.aspx
and Stream_Computing_User_Guide.pdf doc available at http://developer.amd.com/gpu_assets/Stream_Computing_User_Guide.pdf
From which language you want to convert to CAL IL?
Originally posted by: genaganna From which language you want to convert to CAL IL?
Originally posted by: Tapejara Originally posted by: genaganna
From which language you want to convert to CAL IL?I call it φ. It is somewhat C-like but is a true parallel programming language with implicit SIMD and multi-core/threading.Thank you for you help.
Tapejara,
Is it possible to get source code of your compiler? where can i get your C-like language specification? Brook+ language specification might give a lot of thought on language specification. Brook+ is well know parallel language specification.
Originally posted by: genaganna Is it possible to get source code of your compiler? where can i get your C-like language specification? Brook+ language specification might give a lot of thought on language specification. Brook+ is well know parallel language specification.
φ is not open-source and the 'specification' is not even completely stable. Currently, only the editor and parser exist but I am actively researching target hardware, thus my original post. I say "C like" because it is an imperative language like C (not a functional language). I will look into Brook+. Thanks.
It is now January of 2012. I am well into the code generator now targetting AMD64.