我正在尝试打印出本地内存的类型:
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,即使它正在工作。
我需要做一些类型的铸造吗?请帮我解决这个问题。
答案 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);
您将返回1
或2
,您可以在cl.h
标题中查看:
#define CL_LOCAL 0x1
#define CL_GLOBAL 0x2