1

ATIFireproV8750を搭載した私のマシンでの次のプログラムの出力は次のとおりです。

"Couldn't find any devices:No error" 

(これは、最初のclGetDeviceIDの呼び出しで発生します)。返されるエラーコードは-30です。どういう意味ですか?

デバイスが見つからない理由がわかりません。CLinfo.exeがGPUと使用しているIntelCPUを一覧表示していることを確認しました。ここで何が悪いのかについて、誰かが私のいくつかの指針を与えることができますか?

追加情報:

AMD APP SK 2.4

Fireproドライバー:8.911.3.3_VistaWin7_X32X64_135673

12-4_vista_win7_32_dd_ccc

Windows 7また、fireProDriverの一部のコンポーネントがインストールに失敗したことにも言及する必要があります。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#ifdef MAC
#include <OpenCL/cl.h>
#else
#include <CL/cl.h> 
#endif

int main() {

 /* Host/device data structures */
 cl_platform_id platform;
 cl_device_id *devices;
 cl_uint num_devices, addr_data;
 cl_int i, err;

 /* Extension data */
 char name_data[48], ext_data[4096];

 /* Identify a platform */
 err = clGetPlatformIDs(1, &platform, NULL);            
 if(err < 0) {          
  perror("Couldn't find any platforms");
  exit(1);
  }

  /* Determine number of connected devices */
  err = clGetDeviceIDs(platform, CL_DEVICE_TYPE_GPU, 1, NULL, &num_devices);
   if(err < 0) {                
   perror("Couldn't find any devices");
    exit(1);
   }

    /* Access connected devices */
   devices = (cl_device_id*)                    
     malloc(sizeof(cl_device_id) * num_devices);        
   clGetDeviceIDs(platform, CL_DEVICE_TYPE_GPU,             
     num_devices, devices, NULL);               

    /* Obtain data for each connected device */
    for(i=0; i<num_devices; i++) {

    err = clGetDeviceInfo(devices[i], CL_DEVICE_NAME,       
        sizeof(name_data), name_data, NULL);            
    if(err < 0) {       
      perror("Couldn't read extension data");
     exit(1);
   }
   clGetDeviceInfo(devices[i], CL_DEVICE_ADDRESS_BITS,  
        sizeof(ext_data), &addr_data, NULL);            

   clGetDeviceInfo(devices[i], CL_DEVICE_EXTENSIONS,        
        sizeof(ext_data), ext_data, NULL);          

   printf("NAME: %s\nADDRESS_WIDTH: %u\nEXTENSIONS: %s", 
        name_data, addr_data, ext_data);
}

free(devices);
return 0;
}

CLINFOの出力は次のとおりです。GPU: ここに画像の説明を入力してください

CPU: ここに画像の説明を入力してください

ハイライトされた2つのバージョンが異なるのはなぜですか?

4

1 に答える 1

2

システムに複数の OpenCL プラットフォームがインストールされている可能性がありますか? したがって、おそらく最初のプラットフォームは CPU のみのプレイフォームであるため、GPU デバイスのクエリは失敗します。

編集:

問題は次のとおりです。clGetDeviceIDs への最初の呼び出しでは、num_entries に 1 が渡されますが、デバイス ポインターには NULL が渡されます。num_entries には 0 を渡したいと思います。

于 2012-04-30T06:48:43.810 に答える