내 CUDA 코드의 구조를 명확하게 정의하는 데 문제가 있습니다. 내 코드는 두 단계로 나뉩니다. 첫째, M * N 작업을 실행해야하며 그 결과는 다른 N 작업에 사용됩니다. CUDA를 이용하려면 두 가지 수준의 병렬 처리가 가능한지 궁금합니다. 먼저 dimGrid (N * M/dimBlock.x, N * M/dimBlock.y) 및 dimGrid (N/dimBlock.x, N/dimBlock.y)를 사용하여 다른 명령을 실행합니다.Cuda : 실행 중 격자 크기 변경
0
A
답변
0
예, GPU에서 다른 그리드 크기/구성을 가진 커널을 시작할 수 있습니다. 이 다음을 수행 할 수 있습니다 CUDA dynamic parallelism이라는 것을도하지만,
dim3 dimBlock(block_x, block_y);
dim3 dimGrid1(N*M/dimBlock.x, N*M/dimBlock.y);
mykernel1<<<dimGrid1, dimBlock>>>(...);
dim3 dimGrid2(N/dimBlock.x, N/dimBlock.y);
mykernel2<<<dimGrid2, dimBlock>>>(...);
은 컴퓨팅의 GPU가 필요합니다
dim3 dimBlock(block_x, block_y);
dim3 dimGrid1(N*M/dimBlock.x, N*M/dimBlock.y);
mykernel<<<dimGrid1, dimBlock>>>(...);
dim3 dimGrid2(N/dimBlock.x, N/dimBlock.y);
mykernel<<<dimGrid2, dimBlock>>>(...);
또는 다른 커널 : 이것은 당신이 동일한 커널을 실행할지 여부를 사실이다 기능 3.5 :
__global__ void kernel2(...){
...
}
__global__ void kernel1(...){
...
dim3 dimBlock(block_x, block_y);
dim3 dimGrid(N/dimBlock.x, N/dimBlock.y);
kernel2<<<dimGrid, dimBlock>>>(...);
...
}
및 동적 병렬로 재귀 적으로 동일한 커널을 호출도 가능하다 :
__global__ void kernel1(...){
...
dim3 dimBlock(block_x, block_y);
dim3 dimGrid(N/dimBlock.x, N/dimBlock.y);
kernel1<<<dimGrid, dimBlock>>>(...);
...
}
+0
빠른 응답을 보내 주셔서 감사합니다. 나는 TESLA C2075를 사용하기 때문에 현재 동적 병렬 처리를 사용할 수 없습니다. – user2739435
관련 문제
- 1. CUDA - 최적의 격자 크기 지정
- 2. 격자의 격자 격자도 : 점과 격자 크기 변경
- 3. Matplotlib - 직사각형 격자 내 플롯 크기 변경
- 4. 격자 플롯에서 플롯 패널의 크기 변경
- 5. Cuda/PyCuda - 대형 행렬 탐색 및 블록/격자 크기
- 6. 커널 실행 중 CUDA 전송 메모리
- 7. 실행 중 항목 변경
- 8. 실행 중 UITabBar 변경
- 9. CUDA 동시 실행
- 10. 방향 변경 중 사진 크기 변경
- 11. 크기 변경 후 실행 게시물
- 12. cuda 행렬 곱셈 크기
- 13. 격자 크기 조정 문제
- 14. PHP 실행 중 클래스 변경 중
- 15. WPF - 격자 열 크기 조정
- 16. 실행 중 컨텍스트 ClassLoader 변경
- 17. PHP 실행 중 스크립트 변경
- 18. 앱 실행 중 테마 변경
- 19. 앱 실행 중 문자열 변경
- 20. 최대 행렬 크기 단일 블록 CUDA 구현
- 21. 3-d 어레이의 cuda fortran에서 격자 및 블록을 설계하는 방법
- 22. CellEditing이있는 Extjs 격자 - 격자 필드 변경 이벤트
- 23. jqGrid filtertoolbar가 격자 크기 변경 후 실행되지 않습니다.
- 24. cuda 소켓 프로그램 실행
- 25. CUDA Warp 실행 효율성
- 26. CUDA : OpenMP로 프로그램 실행
- 27. CUDA 추력 - 실행 지수
- 28. 버튼 클릭시 그리드 크기 변경
- 29. Singularitygs의 격자 방향 변경
- 30. 격자 모양의 확인란 상태 변경
"명령어"로 "커널 시작"을 의미하는 경우 블록 당 그리드와 스레드마다 다른 블록을 사용하여 동일한 커널을 실행할 수 있습니다. – JackOLantern