질문이 있으십니까? Memory allocated using cudaMalloc() is accessable by host or not? 현재 나에게 많은 것이 명확하지만, 왜 호스트의 장치 포인터에 액세스 할 수 없는지 궁금합니다. 내 이해는 CUDA 드라이버가 GPU DRAM 내부의 메모리 할당을 담당한다는 것입니다. 따라서이 정보 (장치에 할당 된 메모리의 첫 번째 주소는 무엇입니까?)는 호스트에서 실행중인 OS로 전달 될 수 있습니다. 그러면이 장치 포인터, 즉 할당 된 장치 메모리의 첫 번째 주소에 액세스 할 수 있습니다. 내 이해에 무슨 문제가 있니? 이 사실을 이해하도록 도와주십시오. 고마워요왜 호스트 측에서 장치 메모리에 액세스 할 수 없습니까?
답변
GPU 메모리는 PCIE 버스의 다른쪽에 있습니다. 최신 PC 아키텍처의 호스트 메모리 용 메모리 컨트롤러는 CPU에 직접 연결됩니다.
따라서 액세스 방법은 상당히 다릅니다. GPU에있는 메모리에 액세스 할 때 트랜잭션은 일련의 PCIE 사이클로 프레임되어야합니다. 이 트랜잭션을 수행하기 위해 PCIE 버스를 설정하는 활동은 최신 CPU의 일반 메모리 가져 오기주기에 내장되어 있지 않습니다.
따라서 소프트웨어 상호 작용 (cudaMemcpy
으로 처리)을 통해 버스의 반대쪽에있는 데이터를 보내거나 가져 오기 위해 PCIE 버스의 사이클을 프로그래밍하는 소프트웨어 시퀀스를 완료해야합니다.
프로그래밍 언어가 트랜잭션을 원활하게 할 수 있다는 점을 강조해야한다고 생각하지만 사람들은 칩간에 메모리를 전송하는 것이 상당히 비싸다는 사실을 무시할 수도 있습니다. – aaronman
예, 내 의견은 CUDA의 현재 상태를 기반으로합니다. 나는 무엇이 될 수 있는지, 무엇이 될 수 있는지, 이론적으로 가능한 것은 무엇인지를 언급하지 않고있다. 당신이 원한다면, 당신은 내 진술 전부에 "오늘, ..."을 붙일 수 있습니다. –
내가 말하는 것은 사람들이 그것을 완벽하게 만드는 것이 어려울 것이라고 생각하지 않는다는 것입니다. 그러나 사람들은 그렇게 선택하지 않았습니다. 무의식적으로 프로그램을 느리게하지 마십시오 – aaronman
- 1. 왜 EXC_BAD_ACCESS가 메모리에 액세스 할 수 없습니까?
- 2. 왜 메모리에 직접 액세스 할 수 없습니까?
- 3. 왜 클라이언트 측에서 'sessionid'를 가져올 수 없습니까?
- 4. 왜 내 변수에 액세스 할 수 없습니까?
- 5. 왜 자식 노드에 액세스 할 수 없습니까?
- 6. 왜 "total_clients"변수에 액세스 할 수 없습니까?
- 7. 왜 개체의 속성에 액세스 할 수 없습니까?
- 8. 왜 내 var에 액세스 할 수 없습니까?
- 9. 내가 왜 .TrimSafe에 액세스 할 수 없습니까?
- 10. 왜 jsfiddle에서 document.body에 액세스 할 수 없습니까?
- 11. 왜 Screen.ids에 액세스 할 수 없습니까?
- 12. 왜 자기에 액세스 할 수 없습니까?
- 13. 호스트에서 장치 전역 메모리에 액세스 할 수 있습니까?
- 14. OpenCL, GPU 커널에서 호스트 메모리에 직접 액세스
- 15. 호스트 프로세스간에 cuda GPU 장치 메모리를 공유 할 수 있습니까?
- 16. 플래시 메모리에 저장할 수 없습니까?
- 17. MySQL이 호스트 이름을 인식 할 수 없습니까?
- 18. DataServiceConfiguration에 액세스 할 수 없습니까?
- 19. EnforceConstraints에 액세스 할 수 없습니까?
- 20. 자가 액세스 할 수 없습니까?
- 21. Strings.resx에 액세스 할 수 없습니까?
- 22. pdf 파일에 액세스 할 수 없습니까?
- 23. gdb 코어가 메모리에 액세스 할 수 없습니다.
- 24. C 주소에서 메모리에 액세스 할 수 없습니다
- 25. strcat를 사용하여 메모리에 액세스 할 수 없습니다.
- 26. 버스 오류입니다. 메모리에 액세스 할 수 없습니다.
- 27. 메모리에 액세스 할 수 없습니다. 세그먼트 오류
- 28. 클라이언트 측에서 web.xml에 액세스 할 수 있습니까?
- 29. 왜 내 DLL 함수에 액세스 할 수 없습니까?
- 30. 왜 루비에서 인스턴스 변수에 액세스 할 수 없습니까? 좋아
GPU에 자체 칩 메모리가 있으며 CPU에 자체 칩 메모리가 있습니다. 저렴한 데이터는 아닙니다. – aaronman
데이터를 전송할 때 몇 가지 작업을해야합니다.이 사실을 이해하지 못했습니다. 제 질문과 관련이 있습니다. 자세한 내용을 알려주시겠습니까? – user25108