공유 메모리 (CPU와 공유되는 메모리)를 사용하는 것이 항상 빠를 수는 없습니다. 최신 그래픽 카드 사용하기 GPU/CPU가 동일한 데이터에서 오페라토닌을 수행하고 서로 정보를 공유해야하는 경우가 더 빠를 것입니다. 메모리를 카드에서 복사 할 필요가 없으므로 그 반대의 경우도 마찬가지입니다.
그러나 프로그램이 GPU에서 완전히 실행되는 경우 로컬 메모리 (GDDR5)에서 독점적으로 실행하면 GPU의 메모리가 시스템보다 훨씬 빠를뿐만 아니라 시스템이 훨씬 빠를 것이므로 매우 빠르게 실행될 수 있습니다 PCI-E 레인을 통해 메모리를 읽음으로써 야기되는 모든 대기 시간.
그래픽 카드의 메모리를 "l3 캐시"유형으로 생각하고 시스템의 메모리는 전체 시스템에서 공유하는 리소스로, 여러 장치가 정보를 공유해야하거나 캐시가 가득차있을 때만 사용합니다. 나는 CUDA 또는 OpenCL 프로그래머가 아니며,이 애플리케이션에 Hello World를 작성한 적도 없습니다. 나는 단지 약간의 백서를 읽었으며, 상식 일뿐입니다. (아마도 컴퓨터 과학 학위가 유용 할 수도 있습니다.)
무엇이 당신의 질문입니까? 문제가 정확히 무엇입니까? –
문제는 공유 메모리 (로컬 mem)를 사용할 때 프로그램이 실제로 전역 메모리에서 데이터를 사용할 때보 다 느리게 실행된다는 것입니다. 그러나 모든 곳에서 공유 메모리를 사용하면 속도가 빨라집니다. –
나는 삶의 게임에서와 같은 알고리즘을 사용했다. –