5 Replies Latest reply on Jan 26, 2012 4:13 PM by Tapejara

    Getting Started with Stream CAL and IL

    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. 

      Thanks

        • Getting Started with Stream CAL and IL
          genaganna

           

          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?

            • Getting Started with Stream CAL and IL
              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.


                • Getting Started with Stream CAL and IL
                  genaganna

                   

                  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.

                    • Getting Started with Stream CAL and IL
                      Tapejara

                       

                      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. 

                       

                • Re: Getting Started with Stream CAL and IL
                  Tapejara

                  It is now January of 2012. I am well into the code generator now targetting AMD64.