最終更新:
mikk_ni3_92 2010年05月08日(土) 14:15:37履歴
現在地 >> メニュー >> OpenCL >> OpenCL編01 >> OpenCL編01::まとめ2
#include <oclUtils.h>//OpenCL用ユーティティヘッダ #include <iostream> int main(int argc, const char** argv) { cl_platform_id clSelectedPlatformID = NULL;//プラットフォームID cl_int ciErrNum = oclGetPlatformID (&clSelectedPlatformID);//プラットフォームIDの取得 oclCheckError(ciErrNum, CL_SUCCESS);//エラーチェック char cBuffer[1024]; //プラットフォームの情報を取得 //名前 ciErrNum = clGetPlatformInfo (clSelectedPlatformID, CL_PLATFORM_NAME, sizeof(cBuffer), cBuffer, NULL); if (ciErrNum == CL_SUCCESS) { std::cout <<"Platform NAME : "<< cBuffer << "\n"; } //プラットフォームのバージョン ciErrNum = clGetPlatformInfo (clSelectedPlatformID, CL_PLATFORM_VERSION, sizeof(cBuffer), cBuffer, NULL); if (ciErrNum == CL_SUCCESS) { std::cout <<"Platform version : "<< cBuffer << "\n"; } //OpenCLのデバイス情報 cl_uint ciDeviceCount; cl_device_id *devices = NULL; //使用可能なデバイスの数を取得 ciErrNum = clGetDeviceIDs (clSelectedPlatformID, CL_DEVICE_TYPE_ALL, 0, NULL, &ciDeviceCount); std::cout << "there is " <<ciDeviceCount << " devices for OpenCL \n"; //デバイスの詳細な情報を得るためのデータ構造のメモリ確保 devices = new cl_device_id[ciDeviceCount]; if (devices == NULL) { std::cout << "Failed to allocate memory for devices\n"; shrEXIT(argc, argv); } ciErrNum = clGetDeviceIDs (clSelectedPlatformID, CL_DEVICE_TYPE_ALL, ciDeviceCount, devices, &ciDeviceCount); if (ciErrNum == CL_SUCCESS) { for(unsigned int i = 0; i < ciDeviceCount; ++i ) { std::cout << "---------------------------------\n"; clGetDeviceInfo(devices[i], CL_DEVICE_NAME, sizeof(cBuffer), &cBuffer, NULL); std::cout << cBuffer << "\n---------------------------------\n"; oclPrintDevInfo(LOGCONSOLE, devices[i]);//デバイス情報を出力 } }else { std::cerr << "error @ clGetDeviceIDs\n"; shrEXIT(argc, argv); } delete [] devices; shrEXIT(argc, argv); return 0; }