如何从clGetDeviceInfo正确打印值

时间:2014-08-25 21:41:07

标签: c opencl

我正在尝试打印出本地内存的类型:

cl_int err;
cl_device_local_mem_type type;
err = clGetDeviceInfo(
deviceId,
CL_DEVICE_LOCAL_MEM_TYPE,
sizeof(cl_device_local_mem_type),
&type,
0 );

printf ("Memory type is %s=". type);

这不起作用。此外,如果我使用& type,即使它正在工作。

我需要做一些类型的铸造吗?请帮我解决这个问题。

1 个答案:

答案 0 :(得分:2)

cl_device_local_mem_type类型只是一个无符号整数,因此您应该使用%u打印它,而不是%s

cl_int err;
cl_device_local_mem_type type;
err = clGetDeviceInfo(
deviceId,
CL_DEVICE_LOCAL_MEM_TYPE,
sizeof(cl_device_local_mem_type),
&type,
0 );

printf ("Memory type is %u=", type);

您将返回12,您可以在cl.h标题中查看:

#define CL_LOCAL                                    0x1
#define CL_GLOBAL                                   0x2