Programming/openCL & CUDA
cuda dim3 변수 초기화
구차니
2014. 1. 13. 17:58
dim3는 uint3 형(unsigned int)으로 x,y,z 3개의 변수를 지니는 구조체다.
c++ 스타일과 c 스타일로 초기화가 각각 가능하며
C++ 스타일로는
식으로 값이 없는 건 1로 선언되며
C 스타일로는
으로 선언된다.
---
엥? c 스타일로는 선언 안되는데?
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\vector_types.h
[링크 : http://choorucode.com/2011/02/16/cuda-dim3/]
c++ 스타일과 c 스타일로 초기화가 각각 가능하며
C++ 스타일로는
dim3 valname(x,y,z); dim3 valname(x,y); dim3 valname(x); |
---
엥? c 스타일로는 선언 안되는데?
dim3 testdim3 = {1,1,1};
dim3 testdim2 = {1,1}
dim3 testdim1 = {1} |
error: initialization with "{...}" is not allowed for object of type "dim3"
error: initialization with "{...}" is not allowed for object of type "dim3"
error: initialization with "{...}" is not allowed for object of type "dim3" |
---
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\vector_types.h
struct __device_builtin__ dim3 { unsigned int x, y, z; #if defined(__cplusplus) __host__ __device__ dim3(unsigned int vx = 1, unsigned int vy = 1, unsigned int vz = 1) : x(vx), y(vy), z(vz) {} __host__ __device__ dim3(uint3 v) : x(v.x), y(v.y), z(v.z) {} __host__ __device__ operator uint3(void) { uint3 t; t.x = x; t.y = y; t.z = z; return t; } #endif /* __cplusplus */ }; typedef __device_builtin__ struct dim3 dim3;
[링크 : http://choorucode.com/2011/02/16/cuda-dim3/]