- 함수 한정자 [ Function qualifier]  

    

 Qualifier

 Description.

 __global__

1. 리턴값은 항상 void 

2. <<< >>> 를 이용해서 블록,쓰레드,공유메모리크기, Stream 객체 정보를 설정할 수 있다.

3. 재귀호출 X

4. static 변수 X

5. __host__  와 같이 사용X

6. 가변인수를 가질 수 없다.

7. 디바이스에서 처리되기 전에 반환되는 비동기 동작을 함.

8. 256 바이트 까지 인수를 사용 가능.


 __device__

 1. 디바이스에서만 호출된다.

 2. 재귀호출 X

 3. 가변인수 X

 4. __device__ 함수 포인터 X

__host__ 

 1. qualifier 가 명시가 안될 때, 기본값.

 2. __global__과 함께 사용못한다.

 3. __device__ 와 함께 선언하여, 디비이스, 호스트에서 호출할 수 있다.

 

 




- 변수 한정자 [Variable qualifier]



 Qualifier

Description 

 __device__

 1. 글로벌 메모리에 할당

 2. 프로그램이 종료될 때까지 유효.

 3. 모든 쓰레드가 접근 가능.

 4. 호스트에서 API를 통해 접근 가능. 

 __constant__

 1. 상수메모리 영역에 할당됨.

 2. 프로그램이 종료될 때까지 유효.

 3. 모든쓰레드가 읽기만 가능.

 4.  호스트에서 cudaMemcpyToSymbol() 를 통해 값을 쓸 수 있다.

 __shared__

 1. 블록내 공유메모리에 할당됨.

 2. 블록내 모든 쓰레드상에서 유효하다.

 3. 읽고/쓰기가 빠름. 


    

  

+ Recent posts