Vector 无法使用OpenCl矢量数据类型

Vector 无法使用OpenCl矢量数据类型,vector,types,opencl,Vector,Types,Opencl,我在windows上的nvidia图形卡上使用OpenCL2.0C,我想使用内置的矢量数据类型,但我不能使用它们,它们不知何故没有声明。例如,当我尝试初始化float4向量时,会出现以下错误: float4 data_vec = (float4)(1.0, 1.0, 1.0, 1.0); 错误:“float4”未在此作用域中声明 我一直在看opencl规范,但找不到原因。 虽然当我尝试获取任何向量类型的首选宽度时,结果是1,例如: cl_uint float_width; err = clGe

我在windows上的nvidia图形卡上使用OpenCL2.0C,我想使用内置的矢量数据类型,但我不能使用它们,它们不知何故没有声明。例如,当我尝试初始化float4向量时,会出现以下错误:

float4 data_vec = (float4)(1.0, 1.0, 1.0, 1.0);
错误:“float4”未在此作用域中声明

我一直在看opencl规范,但找不到原因。 虽然当我尝试获取任何向量类型的首选宽度时,结果是1,例如:

cl_uint float_width;
err = clGetDeviceInfo(devices[0], 
CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT,sizeof(char_width), &char_width, NULL);
printf("%d",float_width);
即使我尝试
CL\u DEVICE\u PREFERRED\u VECTOR\u WIDTH\u INT
CL\u DEVICE\u PREFERRED\u VECTOR\u WIDTH\u CHAR
我也得到了1

有人能告诉我原因吗


感谢您,float4是一种设备类型,将在内核代码中使用。在主机端,您需要使用
cl\u float4
,访问器是不同的(更像是数组符号)。

float4
是一种设备类型,用于内核代码。在主机端,您需要使用
cl\u float4
,访问器是不同的(更像是数组符号)。

float4
是一种设备类型,用于内核代码。在主机上或设备代码中,您在哪里使用
float4
?在主机上,您需要使用cl_float4。访问器是不同的(更像是数组符号)。哦,这就是重点,我在主机代码中使用了它,我在内核上测试了它,没有错误,非常感谢。我将把这作为未来观众的答案。
float4
是一种设备类型,用于内核代码。在主机上或设备代码中,您在哪里使用
float4
?在主机上,您需要使用cl_float4。存取器是不同的(更像是数组符号)。哦,这就是重点,我在主机代码中使用了它,我在内核上测试了它,没有错误,非常感谢。我将把它作为未来观众的答案。