AM5728/AM57XX openCL使用案例一(查询硬件资源)

来源:本站
导读:目前正在解读《AM5728/AM57XX openCL使用案例一(查询硬件资源)》的相关信息,《AM5728/AM57XX openCL使用案例一(查询硬件资源)》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《AM5728/AM57XX openCL使用案例一(查询硬件资源)》的详细说明。
简介:我们知道AM5728/AM57XX系列芯片支持使用openCL来调用DSP,因此可以通过openCL硬件加速来提升算法效率,降低 CPU使用率。openCL是一个为异构系统编写程序的框架,该异构系统可以由CPU,GPU,DSP甚至FPGA组成,因此openCL开发人员需要对其运行的硬件平台有非常大的了解,下面程序主要用来查询openCL的硬件资源。

我们知道AM5728/AM57XX系列芯片支持使用openCL来调用DSP,

因此可以通过openCL硬件加速来提升算法效率,降低 CPU使用率.

openCL是一个为异构系统编写程序的框架,该异构系统可以由

CPU,GPU,DSP甚至FPGA组成,因此openCL开发人员需要对其运行的

硬件平台有非常大的了解,下面程序主要用来查询openCL的硬件资源

程序源码如下

```

int main(void)

{

char strings[512];

cl_uint num_platform;

cl_platform_id platform_id[20];

cl_uint num_device;

cl_device_id device_id[20];

cl_device_type device_type;

cl_ulong tmp;

clGetPlatformIDs(0, NULL, &num_platform);

clGetPlatformIDs(num_platform, platform_id, NULL);

for (int i = 0; i < num_platform; i ++) {

clGetPlatformInfo(platform_id, CL_PLATFORM_NAME, 512, strings, NULL);

printf("platform name [%s]n", strings);

clGetPlatformInfo(platform_id, CL_PLATFORM_VENDOR, 512, strings, NULL);

printf("platform vendor [%s]n", strings);

clGetPlatformInfo(platform_id, CL_PLATFORM_VERSION, 512, strings, NULL);

printf("platform version [%s]n", strings);

clGetPlatformInfo(platform_id, CL_PLATFORM_PROFILE, 512, strings, NULL);

printf("platform profile [%s]n", strings);

clGetDeviceIDs(platform_id, CL_DEVICE_TYPE_ALL, 20, device_id, &num_device);

for (int j = 0; j < num_device; j ++) {

clGetDeviceInfo(device_id[j], CL_DEVICE_TYPE, sizeof(cl_device_type),

&device_type, NULL);

if (device_type == CL_DEVICE_TYPE_CPU)

printf("device type [cpu]n");

else if (device_type == CL_DEVICE_TYPE_GPU)

printf("device type [gpu]n");

else if (device_type == CL_DEVICE_TYPE_ACCELERATOR)

printf("device type [accelerator]n");

clGetDeviceInfo(device_id[j], CL_DEVICE_NAME, 512, strings, NULL);

printf("device name [%s]n", strings);

clGetDeviceInfo(device_id[j], CL_DEVICE_GLOBAL_MEM_SIZE,

sizeof(cl_ulong), &tmp, NULL);

printf("device global mem [%lld]MBn", tmp/1024/1024);

clGetDeviceInfo(device_id[j], CL_DEVICE_GLOBAL_MEM_CACHE_SIZE,

sizeof(cl_ulong), &tmp, NULL);

printf("device global mem cache [%lld]KBn", tmp/1024);

clGetDeviceInfo(device_id[j], CL_DEVICE_LOCAL_MEM_SIZE,

sizeof(cl_ulong), &tmp, NULL);

printf("device local mem [%lld]KBn", tmp/1024);

clGetDeviceInfo(device_id[j], CL_DEVICE_MAX_MEM_ALLOC_SIZE,

sizeof(cl_ulong), &tmp, NULL);

printf("device max mem alloc [%lld]MBn", tmp/1024/1024);

clGetDeviceInfo(device_id[j], CL_DEVICE_MAX_CLOCK_FREQUENCY,

sizeof(cl_ulong), &tmp, NULL);

printf("device max clock frequency [%lld]MHZn", tmp);

clGetDeviceInfo(device_id[j], CL_DEVICE_MAX_COMPUTE_UNITS,

sizeof(cl_ulong), &tmp, NULL);

printf("device max compute unit [%lld]n", tmp);

}

}

return 0;

}

```

提醒:《AM5728/AM57XX openCL使用案例一(查询硬件资源)》最后刷新时间 2024-03-14 01:00:47,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《AM5728/AM57XX openCL使用案例一(查询硬件资源)》该内容的真实性请自行鉴别。