cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

tdma
Journeyman III

clAmdBlasTune reporting no device ID

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

 

0 Likes
11 Replies
kknox
Staff

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

0 Likes
tdma
Journeyman III

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

 

0 Likes

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

why don't you use intel stuff ?

 

0 Likes

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.

0 Likes

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

 

0 Likes
tdma
Journeyman III

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

 

 

0 Likes

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.

0 Likes
tdma
Journeyman III

"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

 

0 Likes
tdma
Journeyman III

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.

 

 

0 Likes

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

0 Likes

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.

0 Likes