11 Replies Latest reply on May 25, 2012 10:48 AM by kknox

    clAmdBlasTune reporting no device ID

    tdma

      I get "-1" from clGetDeviceIDs() when I run the clAmdBlasTune from the clAmdBlas 1.4 library.

      Also, all precompiled examples return segmentation fault; same error when I compile an example and run it.

      This is on opensuse 11.4 (64-bit) with an intel i5 cpu, only (laptop). And I have the SDK 2.5 installed, and all my other opencl programs compile and run fine.

      Can I see the source code of the clAmdBlasTune? Is there specified to look only for GPUs? I have seen others reporting clAmdBlas runs on the CPU for them.

      Any hint greatly appreciated.

       

      Thanks

      Tom

       

        • clAmdBlasTune reporting no device ID
          kknox

          Hi tdma~

          Unfortunately, we do not release the source to our FFT and BLAS libraries.

          I need a little more information to be able to help you; what is your system configuration that you are running on?  Linux/Win, driver version, 64/32 bit; everything helps.  Can you post the output from clInfo and the output you see from the tuning program?  

          clGetDeviceIDs() is not directly related to the math libraries, it's more of an OpenCL runtime setup function.  A return value of -1 means 'CL_DEVICE_NOT_FOUND'.  I suspect that the machine is not properly set up yet, even though other applications are running.

          Have you tried running the example programs, and do they work?  Can you call into clAmdBlas without running the tune program?

          Kent

            • clAmdBlasTune reporting no device ID
              tdma

              Thanks for the response.

              The system is a thinkpad T410s laptop with an mobile intel processor i5; no dedicated graphics card. And it is on an opensuse 11.4 (64bit) operating system. I am using the CPU for now for developing some initial code developemnt.

              Here are the details from clinfo, devicequery, and clamdblastune.

              http://pastebin.com/kRE9TSwD

               

              And clBlasVersion returns this:

              s@linux:~/ocl> ./clBlasVersion
              clAmdBlas version 1.4.182

               

              The examples in clamdblas all give "segmentation fault".

               

              My personal opencl programs, that don't use clamdblas all compile and run fine.

               

              thanks if you have a hint

               

              T

               

                • clAmdBlasTune reporting no device ID
                  arsdmthe

                  wow i will not try to run amd stuff on intel cpu myself ;)

                  why don't you use intel stuff ?

                   

                    • clAmdBlasTune reporting no device ID
                      himanshu.gautam

                      hi tdma,

                      First of all, AMD SDK or libraries are not guaranteed to run on other vendor's hardware. So might be more lucky if you can tell results after runing it on a AMD hardware.

                      Anyways as you are able to run clInfo , your clGetDeviceIds should not be the problem causing element, as it works fine in clInfo. I suggest you to try to debug the sample and figure out if any previous/other function is giving a error.

                      Use cl.h file to find what each error codes mean.

                        • clAmdBlasTune reporting no device ID
                          tdma

                          Kent

                           

                          Does the clAmdBlasTune look only for GPUs? Or also for CPUs?

                          This can be seen from the clGetDeviceIDs() function in the host code.

                          http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetDeviceIDs.html

                           

                          If you can let me know, I would very much appreciate it.

                           

                          Thanks

                          T

                           

                            • clAmdBlasTune reporting no device ID
                              tdma

                              clAmdBlasTune runs* well on a system with 2 nvidia tesla system (with a linux OS) on the Amazon cloud.

                              What could be the problem with it on my laptop?

                              Thanks

                              T

                               

                               

                              *Although it runs into a different error:

                              http://forums.amd.com/devforum/messageview.cfm?catid=390&threadid=157591&enterthread=y

                               

                               

                                • clAmdBlasTune reporting no device ID
                                  kknox

                                  Hi tdma~

                                  I can confirm that the clAmdBlasTune program does not tune for CPU devices, only GPU devices.  GPU devices are really our target for tuning, the CPU device is more useful as a debug aid, at this point.  Of course, there is no requirement to run tuning before using the library.

                                  I believe that we could have a better error message than what is currently output; i'll put a request into our bug tracker.

                                  Thank you for your feedback.

                                    • clAmdBlasTune reporting no device ID
                                      tdma

                                      "The libraries also support running on CPU devices" says the webpage of the AMD OpenCL BLAS library. But even if not stated, moden CPU are OpenCL compliant, and OpenCL is a standard!

                                      Hoping the next verions, 1.6, is just around the corner with the issues fixed.

                                       

                                      Thanks

                                      T

                                       

                                        • clAmdBlasTune reporting no device ID
                                          tdma

                                          This is still not resolved with the new version 1.6.

                                           

                                          I can do coding OpenCL without a AMD (or nvidia) GPU fine.

                                          How can I do coding OpenCL+clAmdBlas without having a AMD GPU? (only have a laptop)

                                          One remedy would be if AMD would provide cloud service with AMD GPU instances, similar to Amazon Web Service nvidia GPU instances, for developers to do coding using AMDs linear algebra (and other) libraries.

                                           

                                           

                                            • Re: clAmdBlasTune reporting no device ID
                                              yurtesen

                                              You can still use the clAmdBlas with CPU you just wont be able to tune it.

                                              • Re: clAmdBlasTune reporting no device ID
                                                kknox

                                                Hi tdma,

                                                The tune program will not tune for CPU devices; this is not something that will be enabled anytime soon.  You are correct in that this can be done, but writing optimal CPU kernels would take resources we don't currently have.  We are still not finished developing GPU targeted kernels, or finished optimizing the ones that we have, since new GPU ASICS are introduced almost every year.  In addition, the bang for the buck is low for a feature like this, since we already make available a hand-optimized BLAS library with ACML.  I would highly recommend using ACML if CPU performance is your goal, as this is a very mature and well established library.

                                                 

                                                After saying all that, you don't have to tune clAmdBlas to run to be able to run clAmdBLas on the CPU device.  Just enumerate a CPU device when you create the OpenCL context .  clAmdBlas as a library will run on the CPU device, however performance is not that impressive.