OpenMP (CG에서 OpenGL)에서 애니메이션의 경우 3D 다각형 이미지를 렌더링하는 것이 효율적입니까?OpenMP 3D 렌더링 용 openMP 사용
1
A
답변
1
병렬로 GPU에 렌더링 명령을 대기열에 넣으려고 할 때 이점이 없습니다. 랜더링은 이미 GPU에서 병렬로 실행되며 명령을 병렬로 전송하면 드라이버에 오버 헤드가 많이 발생하여 명령 스트림에서 동기화 지점을 확인해야하며 순서를 변경해야 할 수도 있습니다.
또한 멀티 스레드 OpenGL 작업은 올바르지 않습니다.
0
그래픽 카드에 동시에 여러 개의 CPU 스레드가 PCIe 버스에 액세스 할 수있게 허용하면 한 번에 하나의 스레드 만 해당 IO 버스에 실제로 액세스 할 수 있으므로 단일 스레드보다 좋을 가능성이 거의 없습니다 .
관련 문제
- 1. OpenMP Barrier 사용 방법
- 2. OpenMP - 기능 사용
- 3. OpenMP : #pragma 조건부 사용
- 4. OpenMP 잠금 사용
- 5. OpenMP OMP 용 Bash 스크립트
- 6. 루프 및 포인터 용 OpenMP
- 7. 섹션 내 루프 용 OpenMP
- 8. "for"루프 용 OpenMP 출력
- 9. OpenMP 감소에서 다형성 유형 사용
- 10. OpenMP 및 Pthreads에서 잠금 사용
- 11. OpenMP, 모든 코어를 병렬로 사용
- 12. -O2 최적화 및 OpenMP 사용
- 13. Xcode 4.6에서 OpenMP 지원 사용
- 14. OpenMP 중첩 루프 (Qt 사용)
- 15. C++ 객체 생성자에서 OpenMP 사용
- 16. OpenMP 질문
- 17. 스레드가없는 OpenMP
- 18. Openmp 스케줄링
- 19. OpenMP - 섹션
- 20. OpenMP help on code
- 21. iOS/Android의 OpenMP
- 22. OpenMP (병렬 용) 병렬 처리시 세그먼트 오류
- 23. 루프 용 OpenMP 내에서 함수 호출
- 24. 개인용 Malloc 용 OpenMP Seg 오류
- 25. 가속기 용 OpenMP 4.0 : Nvidia GPU 대상
- 26. 인텔 i7에서 OpenMP
- 27. Openmp Fortran Subroutine
- 28. OpenMP task in
- 29. fortran openmp 동기화
- 30. OpenMP 대형 배열에서의 충돌
동의합니다. 또한 여러 개의 CPU 스레드가 동시에 PCIe 버스에 액세스 할 수있게하려고했는데 그래픽 카드에 동시에 액세스하는 것은 하나의 스레드가 실제로 존재하기 때문에 단일 스레드보다 더 나을 가능성이 거의 없습니다. 한 번에 그 IO 버스에 액세스 할 수 있습니다. – trumpetlicks
@trumpetlicks : PCIe는 PCIe가 특정 패킷 길이 (실제로는 전체 길이 세트가 있지만 실제로는 매우 짧음)로 "트랜잭션"이라는 모든 작업을 수행하므로 그리 나쁘지 않습니다. 여러 스레드가 문제없이 이러한 트랜잭션을 인터리브 할 수 있습니다. 그래서 대부분 대역폭 문제입니다. 그러나 잘 작성된 OpenGL 프로그램에서 먼저 어쨌든 지오메트리를 GPU RAM에 업로드 한 다음 단일 명령으로 전체 렌더링 일괄 처리를 실행합니다. – datenwolf
PCIe 버스의 대역폭 (+ 오버 헤드)은 PCIe 버스보다 훨씬 더 빠르지 만 (PCI가 PCIe보다 훨씬 빠름) 패킷 처리에 대해 완전히 동의합니다 (GPU가 지오메트리의 병렬 처리 등을 수행하도록 함). 메모리로 페이저해야하는 경우 단일 스레드를 여전히 멈추게 할 수 있음), 다중 코어 (또는 HT의 경우 스레드)가 해당 버스에 액세스하려고하면 대부분의 스레드가 대부분의 경우 블록 상태로 유지됨 . GPU로 전송하기 위해 모든 데이터를 수집하고 더 적은 수의 큰 패킷으로 보내므로 (오버 헤드가 적음) 훨씬 더 좋습니다. – trumpetlicks