cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

joostn
Adept I

Check if a recent driver is installed

Hi,

I've had one user of my application report an inexplicable OpenCL error (CL_INVALID_MEM_OBJ in clSetKernelArg). I suspected might be due to a driver bug, and indeed after updating the driver all is working fine. This is on Windows BTW.

He's using a FirePro V4800. Before the upgrade this was his driver version:

    CL_DEVICE_VENDOR_ID: 4098

    CL_DEVICE_VENDOR: Advanced Micro Devices, Inc.

    CL_DEVICE_VERSION: OpenCL 1.1 ATI-Stream-v2.2 (302)

    CL_DRIVER_VERSION: CAL 1.4.815

After upgrade:

    CL_DEVICE_VENDOR_ID: 4098

    CL_DEVICE_VENDOR: Advanced Micro Devices, Inc.

    CL_DEVICE_VERSION: OpenCL 1.2 AMD-APP (1411.4)

    CL_DRIVER_VERSION: 1411.4 (VM)

My question is this: I'd like to force users of my application to upgrade their driver if it's older than a certain version. Apparently there are two driver branches around (ATI-Stream and AMD-APP) with different version numbering. If I understand correctly Stream was superseded by APP. So I'm considering something like:

if( (CL_DEVICE_VENDOR_ID == 4098) && (CL_DRIVER_VERSION =~ /^CAL /) )

{

  "Please update your driver and come back"

  exit

}

Would this work?

My main concern is that there might be certain older cards for which only an ATI-Stream driver is available and no AMD-APP one.

Or to force an even more recent driver:

if( (CL_DEVICE_VENDOR_ID == 4098) && ((CL_DRIVER_VERSION =~ /^CAL /)  || (CL_DRIVER_VERSION < 1400.0)))

{

  "Please update your driver and come back"

  exit

}

Again I don't want to lock out anyone. Is the 1411.x driver version available for all AMD GPUs, or are there other driver branches around, or are certain cards limited to older driver versions?

Thanks

Joost

0 Likes
4 Replies
dipak
Big Boss

Hi Joost,

Probably your application requires some specific OpenCL compliant driver say, OpenCL 1.2 . In that case you can use CL_DEVICE_VERSION flag of clGetDeviceInfo() to check the OpenCL version number and accordingly execute your code block or exit your application.

Regarding what GPUs are supported by a driver, it should be in the supported platforms link in the driver download page

Regards,

0 Likes

Hi Dipak,

No, my application only requires OpenCL 1.1. But it requires an OpenCl implementation without bugs. Let me rephrase my question:

Is there an APP driver available for all AMD OpenCL1.1 capable cards?

Or are some AMD OpenCL1.1 capable cards stuck with the older ATI-Stream driver?

0 Likes

IMHO this is not good approach. imagine that AMD change their version number and it broke your program. you should just tell users on support page to update their drivers to latest version.

0 Likes

But first confront them with an incomprehensible OpenCL error or a crashing application? I'd rather lock out the bad driver version.

0 Likes