홈페이지 » 어떻게 » GPU 대신 CPU를 사용하는 이유는 무엇입니까?

    GPU 대신 CPU를 사용하는 이유는 무엇입니까?

    GPU는 위험 계산, 유체 역학 계산 및 지진 분석과 같은 비 그래픽 작업에 점점 더 많이 사용되고 있습니다. GPU 기반 디바이스 채택에서 우리를 멈추게 할 것입니다.?

    오늘의 질문 및 답변 세션은 Q & A 웹 사이트의 커뮤니티 드라이브 그룹 인 Stack Exchange의 하위 부문 인 수퍼 유저의 도움으로 이루어졌습니다..

    질문

    수퍼 유저 (SuperUser) 독자 Ell은 기술 뉴스를 계속 따라하며 더 많은 GPU 기반 시스템을 사용하지 않는 이유가 궁금합니다.

    요즘에는 많은 계산이 GPU에서 수행되는 것으로 보입니다. 분명히 그래픽이 있지만 CUDA 등 AI, 해시 알고리즘 (Bitcoins 생각) 및 다른 것들도 GPU에서 수행됩니다. 왜 우리는 CPU를 없애고 자체적으로 GPU를 사용할 수 없습니까? GPU가 CPU보다 훨씬 빠른 이유는 무엇입니까??

    왜 실제로? CPU를 고유하게 만드는 요인?

    대답

    수퍼 유저 기고가 인 DragonLord는 GPU와 CPU의 차이점을 잘 설명합니다.

    TL, DR 응답 : GPU는 CPU보다 훨씬 많은 프로세서 코어를 가지고 있지만 각 GPU 코어는 CPU 코어보다 훨씬 느리게 실행되고 최신 운영 체제에 필요한 기능이 없으므로 일상 컴퓨팅에서 대부분의 처리를 수행하는 데 적합하지 않습니다. 이들은 비디오 처리 및 물리 시뮬레이션과 같이 연산 집약적 인 연산에 가장 적합합니다.

    자세한 답변 : GPGPU는 여전히 비교적 새로운 개념입니다. GPU는 그래픽 렌더링에만 처음 사용되었습니다. 첨단 기술이 발전함에 따라 CPU와 관련하여 GPU의 많은 코어가 GPU의 연산 기능을 개발함으로써 이용되어 그 데이터가 무엇이든 상관없이 많은 병렬 데이터 스트림을 동시에 처리 할 수있게되었습니다. GPU는 수백 또는 수천 개의 스트림 프로세서를 가질 수 있지만 CPU 코어보다 느리게 실행되며 기능이 거의 없습니다 (완료된 상태에서도 CPU가 실행할 수있는 프로그램을 실행하도록 프로그래밍 할 수 있음). GPU에없는 기능에는 인터럽트 및 가상 메모리가 포함되며, 이는 최신 운영 체제를 구현하는 데 필요합니다..

    다시 말해서, CPU와 GPU는 다른 작업에 더 적합한 아키텍처를 가지고 있습니다. GPU는 여러 스트림에서 많은 양의 데이터를 처리 할 수 ​​있으며 상대적으로 간단한 연산을 수행 할 수 있지만 단일 스트림 또는 소수 스트림의 복잡한 또는 복잡한 처리에는 적합하지 않습니다. CPU는 코어 단위 (초당 명령어 측면)에서 훨씬 빠르며 단일 또는 소수의 데이터 스트림에서보다 쉽게 ​​복잡한 작업을 수행 할 수 있지만 동시에 여러 스트림을 효율적으로 처리 할 수는 없습니다.

    결과적으로 GPU는 워드 프로세서와 같은 많은 일반 소비자 응용 프로그램을 포함하여 병렬 처리에서 크게 이득을 얻지 않거나 병렬 처리 할 수없는 작업을 처리하는 데 적합하지 않습니다. 또한 GPU는 근본적으로 다른 아키텍처를 사용합니다. 하나는 GPU가 작동하도록 프로그램을 특별히 프로그램해야하고, GPU를 프로그래밍하는 데는 상당히 다른 기술이 필요합니다. 이러한 다양한 기술에는 새로운 프로그래밍 언어, 기존 언어 수정 및 여러 스트림 프로세서에서 수행 할 병렬 연산으로 계산을 표현하는 데 더 적합한 새로운 프로그래밍 패러다임이 포함됩니다. GPU를 프로그래밍하는 데 필요한 기술에 대한 자세한 내용은 스트림 처리 및 병렬 컴퓨팅에 대한 Wikipedia 기사를 참조하십시오..

    최신 GPU는 벡터 연산과 부동 소수점 연산을 수행 할 수 있으며 최신 카드는 배정 밀도 부동 소수점 수를 조작 할 수 있습니다. CUDA 및 OpenCL과 같은 프레임 워크를 사용하면 프로그램을 GPU 용으로 작성할 수 있으며 GPU의 특성상 과학적 컴퓨팅과 같이 고도로 병렬화 가능한 작업에 가장 적합합니다. 특수한 GPU 컴퓨팅 카드 시리즈는 소형 NVIDIA Tesla Personal Supercomputers 에서처럼 클러스터를 계산하십시오. Folding @ home에서 경험이 많은 현대 GPU를 사용하는 소비자는 GPU 클라이언트에 기여할 수있어 매우 빠른 속도로 단백질 폴딩 시뮬레이션을 수행하고 프로젝트에 더 많은 작업을 할 수 있습니다 (특히 FAQ와 관련된 내용을 먼저 읽으십시오). GPU). 또한 GPU는 PhysX를 사용하는 비디오 게임에서보다 나은 물리 시뮬레이션을 가능하게하고, 비디오 인코딩 및 디코딩을 가속화하며, 다른 컴퓨팅 집약적 인 작업을 수행 할 수 있습니다. GPU가 수행하는 데 가장 적합한 유형의 작업입니다..

    AMD는 기존의 x86 CPU 코어와 GPU를 결합한 APU (Accelerated Processing Unit)라는 프로세서 설계를 개척하고 있습니다. 이렇게하면 CPU와 GPU 구성 요소가 함께 작동하여 별도의 구성 요소를위한 공간이 제한적인 시스템에서 성능이 향상 될 수 있습니다. 기술이 발전함에 따라 한 번 분리 된 부품의 컨버전스가 점차 증가 할 것입니다. 그러나 PC 운영 체제 및 응용 프로그램에서 수행하는 많은 작업은 여전히 ​​CPU에 더 적합하며 GPU를 사용하여 프로그램을 가속화하는 데 많은 작업이 필요합니다. 기존의 소프트웨어가 x86 아키텍처를 사용하기 때문에 GPU가 다른 프로그래밍 기술을 필요로하고 운영 체제에 필요한 몇 가지 중요한 기능을 잃어 버렸기 때문에 일상적인 컴퓨팅을위한 CPU에서 GPU 로의 일반적인 전환은 매우 어렵습니다..


    설명에 추가 할 것이 있습니까? 의견에서 소리가 나지. 다른 기술에 정통한 Stack Exchange 사용자의 답변을 더 읽고 싶습니까? 전체 토론 스레드를 여기에서 확인하십시오..