커널 내부의 GPU 전역 메모리에 동적으로 메모리를 할당 할 수 있습니까?
나는 내 대답이 얼마나 클지 모르기 때문에 대답의 각 부분에 메모리를 할당 할 방법이 필요합니다. CUDA 4.0은 RAM을 사용하는 것을 허용했습니다 ... 좋은 생각입니까 아니면 속도가 느려지나요 ??동적 GPU의 메모리 할당
5
A
답변
10
커널 내부에서 malloc을 사용할 수 있습니다.
__global__ void mallocTest()
{
char* ptr = (char*)malloc(123);
printf(“Thread %d got pointer: %p\n”, threadIdx.x, ptr);
free(ptr);
}
void main()
{
cudaThreadSetLimit(cudaLimitMallocHeapSize, 128*1024*1024);
mallocTest<<<1, 5>>>();
cudaThreadSynchronize();
}
will output:
Thread 0 got pointer: 00057020
Thread 1 got pointer: 0005708c
Thread 2 got pointer: 000570f8
Thread 3 got pointer: 00057164
1
은 CUDA 4.0에서 당신이 C에서 malloc
및 free
C에서 ++ 대신 new
및 delete
연산자를 사용할 수 있습니다 : 엔비디아 CUDA 가이드에서 가져온 다음을 확인.
관련 문제
- 1. 동적 메모리 할당 교재?
- 2. 동적 메모리 할당
- 3. C++ 동적 메모리 할당
- 4. 동적 메모리 할당 문제
- 5. 동적 메모리 할당
- 6. VB6에서의 동적 메모리 할당
- 7. 동적 메모리 할당
- 8. C에서의 동적 메모리 할당
- 9. __global__ 함수의 동적 메모리 할당
- 10. 2D 동적 메모리 할당 - ObjectiveC
- 11. 동적 모듈의 메모리 할당 관련 문제
- 12. 동적 메모리 할당 + 문자열 문제 잘림
- 13. realloc을 사용한 동적 메모리 재 할당
- 14. Java 메모리 할당 정렬
- 15. 메모리 할당
- 16. 메모리 할당
- 17. 메모리 할당
- 18. 동적 언어 및 변수 할당
- 19. 자동/정적 메모리 어쩌면 할당
- 20. 메모리 누출의 C/메모리 할당 ++
- 21. GPU의 메모리 버스 너비와 클럭 속도를 프로그래밍 방식으로 어떻게 결정합니까?
- 22. 메모리 동적 할당 문제 : main : malloc.c : 3096 : sYSMALLOc
- 23. 동적 배열을위한 메모리 할당 - 블록 헤더가 손상되었습니다. (FastMM4)
- 24. 동적 메모리 할당 후 배열을 초기화하는 방법은 무엇입니까?
- 25. GPU의 이미지 강도 합계
- 26. GPU의 정수 계산
- 27. 스레드 당 메모리 할당
- 28. 디스플레이 할당 메모리
- 29. std :: map의 메모리 할당
- 30. TimerCallback.PerformTimerCallback 메모리 할당
@ scatman : 커널 내에서 malloc을 호출하면 할당 된 메모리가 장치에있는 것 같습니다 ... 맞습니까? – Manolete
CPU가 2048 코어의 gtx980만큼 빠른 malloc을 할 수 없기 때문에 GPU에 할당 된 것으로 의심됩니다. 그렇지 않으면 통합 된 gpus가 개별적이지 않을 것입니다. –