커널 내부에서 커널 내부에 선언 된 구조체의 주소를 장치 함수에 전달하는 것이 좋습니까? 장치 함수의 인수는 구조체에 대한 포인터입니다.CUDA : struct에 대한 포인터를 디바이스 함수에 전달해도 괜찮습니까?
1
A
답변
2
예, 다음의 프로그램을 보여줍니다 같이
#include <stdio.h>
struct my_struct
{
int x;
};
// foo receives its argument by pointer
__device__ void foo(my_struct *a)
{
a->x = 13;
}
__global__ void kernel()
{
my_struct a;
a.x = 7;
// expect 7 in the printed output
printf("a.x before foo: %d\n", a.x);
foo(&a);
// expect 13 in the printed output
printf("a.x after foo: %d\n", a.x);
}
int main()
{
kernel<<<1,1>>>();
cudaThreadSynchronize();
return 0;
}
결과 :
$ nvcc -arch=sm_20 test.cu -run
a.x before foo: 7
a.x after foo: 13
1
장치에 메모리를 할당하고 장치 내에서만 사용하는 경우 원하는 장치 기능으로 메모리를 전달할 수 있습니다.
기기의 호스트에서 주소를 사용하거나 호스트의 기기에서 주소를 사용하려는 경우에만 걱정할 필요가 있습니다. 이 경우 먼저 적절한 memcopy를 사용하고 새 장치 또는 호스트 특정 주소를 얻어야합니다.
는관련 문제
- 1. 멤버 함수에 대한 포인터를 저장
- 2. C++에서 포인터를 전달해도 여전히 개체가 복사됩니까?
- 3. struct 정의에서 struct에 대한 포인터를 사용할 가치가 언제 있습니까?
- 4. LLVM : 함수에 대한 포인터를 보유하고있는 구조체에 대한 포인터를 JIT 함수에 전달
- 5. 구성원 함수에 대한 포인터를 저장하여 가상 동작
- 6. 전역 변수에있는 함수에 대한 포인터를 저장하려고합니다
- 7. 멤버 함수에 대한 포인터를 C 함수에 전달하는 방법은 무엇입니까?
- 8. C에서 private struct에 대한 포인터 전달?
- 9. Cfquery 또는 Struct에 대한 루핑?
- 10. 여러 파일 포인터를 동시에 열어도 괜찮습니까?
- 11. objc_SetAssociatedObject에서 값으로 비 ID 포인터를 사용해도 괜찮습니까?
- 12. 함수에 C 포인터를 전달하는 방법?
- 13. C/C++에서 int 값 배열에 대한 포인터를 반환하는 함수에 대한 포인터를 어떻게 선언합니까?
- 14. 커널 내에서 포인터를 사용하는 CUDA 4.0 - 오류
- 15. C++에서 템플릿 함수에 대한 함수 포인터를 가질 수 있습니까?
- 16. 비 정적 멤버 함수에 대한 포인터를 사용하여 콜백 구현
- 17. P/Invoke 함수에 대한 포인터를 전달하는 올바른 방법
- 18. 멤버 및 멤버 함수에 대한 포인터를 사용하면 무엇이 가장 좋습니까?
- 19. 파이썬에서 래핑 된 C++ 함수에 대한 포인터를 전달하는 방법
- 20. 참조를 취하는 함수에 포인터를 전달 하시겠습니까?
- 21. C++ std :: struct에 대한 포인터 목록
- 22. 새내기 질문입니다. C에서 함수에 포인터를 전달하는 방법?
- 23. 배열에 대한 포인터를 glGenBuffers에 전달
- 24. 포인터를 통해 함수에 다중 배열 전달하기
- 25. 구조체에 대한 포인터를 함수로 전달할 때 오류가 발생했습니다
- 26. 괜찮습니까?
- 27. js에 대한 데이터 배열 - 괜찮습니까?
- 28. struct에 fscanf 전달하기
- 29. CUDA - 전역 메모리에 대한 포인터 유지
- 30. 배열에 대한 포인터를 반환