1 Reply Latest reply on Sep 2, 2008 1:23 PM by ryta1203

    about brook+/CAL programming

    Mikky

      I looked some AMD presentations about GPGPUs Firestream 9170/9250 and brook+/CAL.
      I'm estimating the GPGPUs programming possibilities for DP (64-bit) floating point calculations.
       
      The example of AMD Stream using -for addition of pair of  vectors - looks as simple.
      Especially if I compare this source w/CUDA *.cu sources for matrix multiplication (sgemm from BLAS3), having 1000+ source lines.

      But what is in reality for FireStream ?

      So let me ask few "questions of beginner"

      - Do I need to use CAL with brcc - or I may program using brook+/Stream w/o CAL knowledge ?
      And if the answer is "you may use w/o CAL" - how will decrease the performance obtained ?

      - Is there some free available source code examples  - a bit more difficult, than vectors addition (for example, for matrix multiplication) - which helps to understand the difficulty/amount of programming work/...

      - Is the FireStream programming using brook+ (by some reasons) more simple than CUDA using ?   

      Mikhail

        • about brook+/CAL programming
          ryta1203
          Originally posted by: Mikky

          I looked some AMD presentations about GPGPUs Firestream 9170/9250 and brook+/CAL.
          I'm estimating the GPGPUs programming possibilities for DP (64-bit) floating point calculations.
           
          The example of AMD Stream using -for addition of pair of  vectors - looks as simple.
          Especially if I compare this source w/CUDA *.cu sources for matrix multiplication (sgemm from BLAS3), having 1000+ source lines.

          But what is in reality for FireStream ?

          So let me ask few "questions of beginner"

          - Do I need to use CAL with brcc - or I may program using brook+/Stream w/o CAL knowledge ?
          And if the answer is "you may use w/o CAL" - how will decrease the performance obtained ?

          - Is there some free available source code examples  - a bit more difficult, than vectors addition (for example, for matrix multiplication) - which helps to understand the difficulty/amount of programming work/...

          - Is the FireStream programming using brook+ (by some reasons) more simple than CUDA using ?   




          Mikhail



          1. You can use Brook+ without CAL. CAL is for fine tuning, so yes, it's possible that performance will slightly decrease with using Brook+ although I suspect with each release the performance of Brook+ will get better; HOWEVER, writing assembly (or close to it, aka IL) is always going to give better performance than writing high level code and counting on the compiler to give you best performance.

          2. If you download the SDK you will see many examples that are more difficult than vector addition. They have a simple max_mult and an optimized max_mult for both Brook+ and CAL. They also have a lot of examples (although they only use one output and one kernel) for Brook+ and several for CAL.

          3. I don't think that Firestream SDK is simpler than CUDA, this is my opinion. The CUDA documentation and support is much better AND the programming model they use is much easier to understand. Also, Firestream SDK is still in beta while CUDA has been out over a year.

          I'm just a user.