10 Replies Latest reply on Sep 15, 2008 5:35 PM by ryta1203

    BRT_RUNTIME = CPU vs CAL?

    ryta1203
      What are the major differences here? (other than CPU vs GPU)??

      I am asking because I have Brook+ code that runs fine if BRT_RUNTIME = CPU but on the GPU only the 1st kernel is really getting called. It's very odd.

      This occurs on both 2900XT and HD4850 with Catalyst 8.7 on 2900XT and Catalyst 8.8 on HD4850 running WinXP 32-bit VS2005. Just thought I would answer these questions first.
        • BRT_RUNTIME = CPU vs CAL?
          michael.chu
          Hi ryta1203,

          Can you try this with Catalyst 8.6? 1.1-beta seems to have known issues with 8.7 and beyond.

          Michael.
            • BRT_RUNTIME = CPU vs CAL?
              ryta1203
              Michael,

              I thought that people were only having problems with Linux and these drivers, but I will give that a go tomorrow and will post how it went.

              Are there any other things that would make it so that running in emulation mode would be ok but not GPU mode?
              • BRT_RUNTIME = CPU vs CAL?
                ryta1203
                Originally posted by: michael.chu@amd.com

                Hi ryta1203,



                Can you try this with Catalyst 8.6? 1.1-beta seems to have known issues with 8.7 and beyond.



                Michael.


                No luck. I did a clean install of 8.6 and while I get different results with 8.6 than I did with 8.7 on the 2900XT, I still do not get the correct results which I get if BRT_RUNTIME=CPU.

                What are the real differences between CPU and CAL for BRT_RUNTIME?

                ps. My kernel(s) don't use scatter or double precision.
                  • BRT_RUNTIME = CPU vs CAL?
                    ryta1203
                    So does anyone know the real difference between CPU and CAL???

                    I have code that runs fine in CPU but not in CAL.

                    Is it possible to get a list of the differences?

                    I understand the hardware differences so what other differences are there?
                  • BRT_RUNTIME = CPU vs CAL?
                    ryta1203
                    Originally posted by: michael.chu@amd.com

                    Hi ryta1203,



                    Can you try this with Catalyst 8.6? 1.1-beta seems to have known issues with 8.7 and beyond.



                    Michael.


                    Michael,

                    Can we expect any documentation included with 1.3 Beta that describes the differences between CAL and CPU for BRT_RUNTIME??
                      • BRT_RUNTIME = CPU vs CAL?
                        michael.chu
                        Hi ryta1203,

                        The only difference between CPU vs. CAL is that with CPU, the Brook+ runtime will execute a version of the code on the CPU and not touch the GPU at all. The CAL setting will take the code path of sending IL down to the Brook+ runtime which sends it down to the CAL compilation API.

                        The Brook+ compiler (brcc) outputs both CPU code and Brook+ runtime (CAL) code (with IL for the kernels) each time it is run on a .br file. The decision on which path is run is completely determined at runtime via the environment variable.

                        Both paths of code are available in the C++ files that come out of brcc.

                        Michael.
                          • BRT_RUNTIME = CPU vs CAL?
                            ryta1203
                            Originally posted by: michael.chu@amd.com

                            Hi ryta1203,



                            The only difference between CPU vs. CAL is that with CPU, the Brook+ runtime will execute a version of the code on the CPU and not touch the GPU at all. The CAL setting will take the code path of sending IL down to the Brook+ runtime which sends it down to the CAL compilation API.



                            The Brook+ compiler (brcc) outputs both CPU code and Brook+ runtime (CAL) code (with IL for the kernels) each time it is run on a .br file. The decision on which path is run is completely determined at runtime via the environment variable.



                            Both paths of code are available in the C++ files that come out of brcc.



                            Michael.


                            So code that runs in CPU mode should run in CAL mode too?

                            I have not noticed this to be the case.

                            Also, are we going to see, in the future, where the CPU mode mimics the CAL mode? That is, if you write code in emulation mode it will run in CAL mode providing the hardware supports the features used?

                            Maybe I am missing the point of having emulation mode.
                              • BRT_RUNTIME = CPU vs CAL?
                                ryta1203
                                AMD,

                                Any answer to these questions??

                                1. What is the difference(s) between CAL and CPU for BRT_RUNTIME?
                                2. Are the differences going to be documented?

                                Also, other than GPU Shader Analyzer, is there any chance we are going to see a profiler specifically for GPGPU (Firestream)?
                        • BRT_RUNTIME = CPU vs CAL?
                          Ceq
                          Two months ago I think I also found a bug in CPU backend gather with 2D data, maybe this can be helpful:

                          http://forums.amd.com/devforum...id=97566&enterthread=y