다음 함수를 CUDA로 변환하고 싶습니다. 어떻게 이것을 위해 CUDA 전역 함수를 작성 하시겠습니까?
void fun()
{
for(i = 0; i < terrainGridLength; i++)
{
for(j = 0; j < terrainGridWidth; j++)
{
//CODE of function
}
}
}
나는 다음과 같은 기능을 썼다 :
__global__ void fun()
{
int i = blockIdx.x * blockDim.x + threadIdx.x;
int j = blockIdx.y * blockDim.y + threadIdx.y;
if((i < terrainGridLength)&&(j<terrainGridWidth))
{
//CODE of function
}
}
나는 상수로 terrainGridLength 및 terrainGridWidth 모두를 선언하고 모두 값 (120)을 할당. 그리고
재미 < < < 30,500 >>>()
같은 함수를 호출하고하지만 난 정확한 출력을 받고 있지 않다.
내가 작성한 코드가 맞습니까? 코드의 parellel 실행에 대해 많은 것을 이해하지 못했습니다. 코드가 어떻게 작동하는지 설명하고 실수를 저지른 경우 수정하십시오.