2012-10-02 56 views

回答

5

創建OpenCL上下文時,您必須在計算機上可用的平臺和設備之間進行選擇。 您可以通過clGetPlatformInfoclGetDeviceInfo獲取有關平臺和設備的一些信息。 您可以在NVIDIA和AMD SDK中找到示例代碼來列出平臺和設備。

對於AMD(gDEBugger,Code XL),NVIDIA(Visual Profiler)和Intel(Intel GPA)設備,您可以使用分析工具。

0

您可以簡單地使用TechPowerUp GPU-Z來查看GPU上是否有一些工作負載。 其他解決方案:您可以明確指定是否在設備類型CL_Device_Type_GPU中使用GPU。

0

我在我的Macbook Pro上使用MenuMeters & Mac Pro - 如果正在使用CPU,它很明顯。 (我不知道,如果分析工具將根據使用的XCode時OpenCL的工作對我來說....)

4

在創建方面,使用clCreateContextFromType在那裏你可以通過標誌CL_DEVICE_TYPE_GPU,指定要僅限GPU。 像這樣保證使用GPU的(你可以100%肯定):

cl_uint num_platforms = 0; 
clGetPlatformIDs(0, NULL, &num_platforms); 
cl_platform_id* platform = malloc(sizeof(cl_platform_id) * num_platforms); 
cl_context_properties cprops[3] = { CL_CONTEXT_PLATFORM, (cl_context_properties)platform[0], 0 }; 
ctx = clCreateContextFromType(cprops, CL_DEVICE_TYPE_GPU, NULL, NULL, &err); 

如果您已經在環境和設備的設置,您可以查詢設備的類型,如下所示:

cl_device_type dev_type; 
clGetDeviceInfo(my_device, CL_DEVICE_TYPE, sizeof(dev_type), &dev_type, NULL); 
if (dev_type == CL_DEVICE_TYPE_GPU) { 
    printf("I'm 100%% sure this device is a GPU"); 
} 

您將入隊到此設備上創建的命令隊列的所有內容都將在GPU上運行。

相關問題