검색결과 리스트
CUDA요약에 해당되는 글 1건
- 2014.12.06 CUDA 기본 문법 정리
글
CUDA 기본 문법 정리
<CUDA C언어 기본 문법 정리>
__global__
· 디바이스에서 실행된다. 호스트에서 호출할 수 있지만, 디바이스에서 호출할 수 없다.
· 디바이스로 실행하는 커널 함수 지정에 사용할 수 있다.
1 2 3 | __global__ function<<< >>> () { ...} |
* 주의사항
1. 리턴값은 항상 void이다.(리턴값을 지정할 수 없다. (x))
2. <<<, >>>를 이용하여 실행 시 블록과 스레드 지정이 가능하다.
3. 재귀 호출은 불가능
4. 함수내 static변수를 가질 수 없다.
5. 가변형 인수를 가질 수 없음( __global__ function<<< ... >>> (int a, ...) (x)
6. __global__로 지정한 함수의 포인터를 이용할 수 있다.
7. __host__와 동시에 이용할 수 없다.
8. 디바이스에서 처리가 완료되기 전에 호출한 즉시 반환하여 비동기 동작
9. 공유 메모리를 이용하요 256바이트까지의 인수 사용이 가능하다.
__device__
· 디바이스에서 실행된다. 디바이스에서 호출할 수 있고, 호스트에서 호출이 불가능하다. 디바이스
코드 중에 작성하여 디바이스 내에서의 실행되는 서브함수로 사용한다.
1 2 | __device__ int function(int a, int b) {...} |
1. 재귀호출 사용 불가
2. 함수내 static변수를 가질 수 없다.
3. 가변형 인수를 가질 수 없다.
4. __device__로 지정한 함수의 포인터는 사용할 수 없다.
__host__
· 호스트에서 실행된다. 호스트에서 호출할 수 있고, 디바이스에서 호출할 수 없다. 호스트에서 보통 사용하는 함수가 된다.
1 2 | __host__ int function(int a, int b) { ... } |
1. __host__, __global__, __device__가 지정되지 않은 경우, __host__를 지정한 것과 동일함
2. __global__과 동시에 사용할 수 없다.
3. __device__와 동시에 사용하여, 호스트와 디바이스 양쪽에서 사용할 수 있는 함수로 작성할 수 있다.
2. __constant__
3. __shared__
'프로그래밍 > CUDA' 카테고리의 다른 글
Image Processing with CUDA (0) | 2015.07.28 |
---|---|
CUDA 스레드 구조 (0) | 2014.12.06 |