은 내가 사용했습니다 : CUDA C에서CUDA는 장치 포인터 조작
float *devptr;
//...
cudaMalloc(&devptr, sizeofarray);
cudaMemcpy(devptr, hostptr, sizeofarray, cudaMemcpyHostToDevice);
가 할당하고 배열을 채 웁니다. 지금은 :하는 CUDA 커널을 실행하려면 해당 배열뿐만 오프셋 값
__global__ void kernelname(float *ptr)
{
//...
}
을 예컨대을 시도하고있다.
kernelname<<<dimGrid, dimBlock>>>(devptr+offset);
그러나이 작동하지 않는 것 : C에서 는/C++는이 같은가 someting 될 것이다.
오프셋 값을 커널에 별도의 인수로 보내지 않고 커널 코드에서 오프셋을 사용하지 않고이를 수행 할 수있는 방법이 있습니까? 이 방법에 대한 아이디어가 있으십니까?
답변 해 주셔서 감사합니다. 나는 그것이 바이트 오프셋이 아니라는 것을 알고있다. 그러나 나는 단어 크기가 무엇인지 모른다.포인터를 필요로하는 인덱스 번호를 단순히 추가하는 것입니다. C++ 에서처럼합니다. 그 맞습니까? – pmcr
아마도이 편집을 통해 좀 더 명확하게 알 수 있을까요? – talonmies
시간 내 주셔서 감사합니다. 그것은 매우 도움이되었습니다. 이제 작동 중입니다. 그것은 어리석은 실수였다. 나는 정말로 미안하다. – pmcr