6 Replies Latest reply on Feb 26, 2014 10:31 AM by rouellet

    Compile OpenCL Kernel Without AMD GPU Present


      I have an OpenCL program running correctly on my nvidia card. I want my program to also support AMD cards, but have not yet bought one due to the extreme price increases currently taking place.


      To get started on the process, I want to make sure my kernels at least compile using AMD's OpenCL compiler before actually buying the card.


      I've installed CodeXL, however it won't even let me compile a kernel without having an AMD device present.


      So my question is: Is there anyway to test the AMD OpenCL compiler without actually having an AMD card present on the system?



        • Re: Compile OpenCL Kernel Without AMD GPU Present


          CodeXL Kernel Analysis component provides offline compilation of OpenCL kernels. However, CodeXL relies for this purpose on the AMD OpenCL Offline Compiler which is installed by the Catalyst package.

          This thread describes how to install an older version of the AMD driver on a Linux system that does not have an AMD GPU: http://devgurus.amd.com/message/1296775

          There may be an installation of the APP SDK that contains the required components for offline compilation without the AMD hardware presence. However, CodeXL has not been tested in this scenario.


            • Re: Compile OpenCL Kernel Without AMD GPU Present

              Thanks Doron.


              I installed the driver successfully. It sees that I have an AMD CPU (not an APU) and no AMD GPU, which is correct. However, when compiling in CodeXL, it says I need to first select a device. The problem is that under Analyze | Analyze Options | Devices, the list is empty because I do not have an AMD GPU.


              Is there any other way to test AMD's OpenCL kernel compiler without actually having a device? I really would like to get going on this before buying a card.



                • Re: Compile OpenCL Kernel Without AMD GPU Present

                  Unless I hear different, I am going to assume this is not possible.


                  Request for AMD: Allow people to use your compiler to test without actually having a device present.

                    • Re: Compile OpenCL Kernel Without AMD GPU Present



                      Basically, KA is an offline compiler and should be able to run without GPU and/or Catalyst installed.

                      Please install latest AMD APP SDK  http://developer.amd.com/tools-and-sdks/heterogeneous-computing/amd-accelerated-parallel-processing-app-sdk/downloads/


                      Since all KA need is AMDOcl.dll please see it is successfully installed on your machine (for 32 bit: C:\Program Files (x86)\AMD APP SDK\2.9\bin\x86)

                      See that this path is included in the computer path.


                      Afaik, this is all you need to get it working.


                      if you still see a blank device list, try the following: Close CodeXL, goto: %AppData%\Roaming\AMD and delete the CodeXL folder. restart CodeXL. (this is an issue that is addressed in CodeXL 1.4)




                        • Re: Compile OpenCL Kernel Without AMD GPU Present

                          Dana, none of what you suggested works.


                          I have the APP SDK installed, version 2.9, and CodeXL is version 1.3.4905

                          I'm running Windows 7, x64.


                          Paths for x86 and x64 are included in the system path variable.

                          amdocl.dll and amdocl64.dll are present.


                          I've also deleted the CodeXL folder in %AppData%\Roaming\AMD


                          I looked in the CodeXLSettings.xml file and found:




                              <DefaultExecutionValues>64 64 64 4 4 4 100</DefaultExecutionValues>



                          Is there a way to hack this file to make some device show up so I can compile?




                            • Re: Compile OpenCL Kernel Without AMD GPU Present

                              The diagnostics from the command line analysis tool may give you a better idea of what the problem is.

                              You can find CodeXLAnalyzer.exe in "\Program Files (x86)\AMD\CodeXL\".

                              [The name change recently, so you may have to poke around to find the .exe]

                              If you run with the -h option, you'll get some help text.

                              If you run with the -l option, you should get a list like:














                              If not, you might get a helpful diagnostic.


                              You could also try copying amdocl64.dll from \windows\system32 and amdocl.dll from \windows\syswow64 to the directory containing CodeXL.exe.  I'm not sure which one you might really need.