Mike Pound가 왜 프로세서가 아닌 그래픽 카드로 컴퓨터의 계산 능력을 측정합니까?


17

최근에 Mike Pound가 4 개의 그래픽 카드 (정확히 말해서 Titan X)를 가진 회사의 슈퍼 컴퓨터를 자랑하는 암호관한 훌륭한 Computerphile 비디오를 보고있었습니다 .

수치 시뮬레이션 애호가로서 저는 시뮬레이션 작업만을위한 데스크탑을 구축하는 것을 꿈꿉니다. Mike Pound가 왜 프로세서가 아닌 그래픽 카드로 컴퓨터의 계산 능력을 측정합니까? 컴퓨터를 제작하는 경우 어떤 항목에 더 관심을 가져야합니까?


11
나는 이것이 반드시 고릴라 대 상어 문제라고 생각하지 않습니다 ... 간단한 질문이 있습니다 : "마이크 파운드가 왜 프로세서가 아닌 그래픽 카드로 컴퓨터의 계산 능력을 측정합니까?" 답을 얻을 수 있으며 그 답은 미래 독자들에게 건설적인 가치가 있습니다.
Maybe_Factor

6
@ gnat : 심지어 닫지 않았습니다. 물론, 현재 형태의 문제는 실제로 소프트웨어 엔지니어링에 관한 것이 아닙니다. 그러나 시스템 = "하드웨어 + 소프트웨어의 조합"인 시스템 엔지니어링에 대한 질문으로 해석 될 수 있다고 생각합니다.
Doc Brown

10
그래픽 카드가 4 개인 컴퓨터는 슈퍼 컴퓨터에 해당하지 않으며 그 문제에 대해 10 개의 라즈베리 파이 클러스터도 마찬가지입니다.
Matti Virkkunen

10
그것은 슈퍼 컴퓨터가 아닌 매우 비싼 PC
설정일뿐입니다

3
컨텍스트가 암호 해독이기 때문에 "마이크 파운드가 왜 그래픽 카드로 컴퓨터의 계산 능력을 측정합니까?"라는 간단한 대답이 아닙니까? 문제 공간이 다른 것이라면, 당신이 신경 써야 할 것은 완전히 다른 것일 수 있습니다.
JimmyJames

답변:


32

Mike Pound는 분명히 그래픽 카드의 계산 능력을 CPU의 계산 능력보다 높게 평가합니다.

왜? 그래픽 카드는 기본적으로 모두 병렬로 실행되는 MANY 단순화 된 프로세서로 구성됩니다. 일부 시뮬레이션 작업의 경우 그래픽 카드에서 사용 가능한 수천 개의 코어에서 많은 계산을 쉽게 병렬화하고 병렬로 처리하여 총 처리 시간을 줄일 수 있습니다.

더 관심을 가져야 할 항목은 무엇입니까? 실제로 관심있는 작업량과 그래픽 카드에서 사용하기 위해 작업량이 병렬화되는 방법에 따라 달라집니다. 작업량이 엄청나게 평행 한 간단한 계산 세트이고 소프트웨어가 사용 가능한 그래픽 카드를 활용하도록 작성된 경우 더 많은 그래픽 카드는 더 많은 CPU (달러에 비해 달러)보다 훨씬 큰 성능 영향을 미칩니다.


5
숫자 추가하기. 기본 컴퓨터가 AMD Epyc 서버, 64 코어, 128 및 하이퍼 스레딩이라고 가정 해 봅시다. 그래픽 카드 "코어"의 속도가 10 %에 불과하다고 가정 해 봅시다. 하나의 TitanX에는 여전히 3072 개의 cuda 코어가 있으며 약 12000 개의 설정이 있습니다. 아이디어가 있습니까? 그래픽 카드에서 문제를 해결할 수 있다면 "빠르지"않습니다. 말 마차 속도를 포뮬러 1 차량과 비교하는 것과 같습니다.
TomTom

3
'간단한 계산의 엄청나게 평행 한 집합'에 +1, 매우 잘 기록됨. 짧고 요점.
Michael Viktor Starberg

11
@TomTom : 실제로 내가 선호하는 비교는 포뮬러 1 자동차 (CPU)를 초고속 열차와 비교하는 것입니다. 물론, 기차와 자동차의 속도는 거의 같습니다. 그러나 열차는 포뮬러 1 차량보다 1000 명을 A에서 B로 더 빠르게 이동할 수 있습니다.
slebetman

2
@slebetman 요점은 CPU가 일반적으로 단일 코어 성능에서 훨씬 빠르다 입니다 (거의 같은 속도는 아님). 어쩌면 우리는 초음속 제트 비행기와 증기 기관차를 타협하고 비교할 수 있습니다.
Darren Ringer

2
차량을 기반으로 유추를 선택해야한다면 CPU는 전투기와 같습니다 (포인트 투 포인트 운송에는 훨씬 빠르며 다른 차량으로는 할 수없는 많은 트릭이 있습니다) GPU는 화물선과 비슷하지만로드가 훨씬 더 적을 수 있지만 처리 시간이 훨씬 느립니다.
Lie Ryan

5

https://developer.nvidia.com/cuda-zone (및 자세한 내용은 Google cuda nvidia) 을 확인하십시오 . cuda 아키텍처와 고급 그래픽 카드는 데스크탑 슈퍼 컴퓨터에 널리 사용됩니다. 일반적으로 기성품 화이트 박스 구성 요소를 사용하여 $ 10K (usd) 미만의 몇 개의 Floflo 박스를 구성 할 수 있습니다.

그래서...

수치 시뮬레이션 애호가로서 저는 시뮬레이션 작업만을위한 데스크탑을 구축하는 것을 꿈꿉니다.

... cuda는 도시에서 가장 멀리 떨어져있는 최고의 게임입니다. 아마도 /scicomp// 또는 다른 종류의 stackexchange 웹 사이트 에서 다시 문의하십시오 .

(여기서, 우리가 여기서 대규모 병렬 프로그래밍에 대해 이야기하고 있다는 생각에 익숙하다고 가정하므로 알고리즘 설계의 패러다임에 익숙해 져야 할 수도 있습니다.)


그리고 평소와 같이 Ordos로 돌아갑니다.
Michael Viktor Starberg

2
@MichaelViktorStarberg 내가 Ordos 참조를 이해하지 못하는 유일한 사람입니까?
MarnixKlooster ReinstateMonica

나는 당신이 두렵다 ... : /
Ismael Miguel

4
@MarnixKlooster : Google "Ordos"를 사용해야했습니다. 중국의 "유령 도시"가 슈퍼 컴퓨터 나 테라 플롭과 어떤 관련이 있는지 잘 모르겠습니다.
Robert Harvey

@MarnixKlooster 당신은 실제로 그렇지 않습니다.
jpmc26

2

컴퓨터를 제작하는 경우 어떤 항목을 더 신경 써야합니까?

실용적인 관점에서 당신은해야 아마 는 GPU에 비해 업그레이드의 상대적 어려움이 주어진 마더 보드와 CPU에 대한 관심이 꽤 지불합니다. 구매 후 4 개의 GPU를위한 공간이 없거나 GPU를 모두 바쁘게 유지할만큼 충분한 프로세서가 없다는 것을 발견하기에는 끔찍한 시간입니다.

또한 GPU 성능은 단 정밀도 FLOP에서 가장 많이보고되며 배정도를 위해 상당히 떨어집니다. 시뮬레이션에 추가 정밀도가 필요한 경우 광고 속도보다 훨씬 낮아집니다.

소프트웨어 엔지니어링 경쟁

소프트웨어 관점에서 Von Neumann 병목 현상과 프로그래밍 모델이라는 두 가지 주요 문제가 있습니다. CPU는 메인 메모리에 대한 액세스가 상당히 뛰어나며 GPU는 훨씬 빠른 메모리를 내장하고 있습니다. GPU 안팎으로 데이터를 이동하는 시간이 모든 속도 승리를 완전히 무효화한다는 것은 알려진 바가 없습니다. 일반적으로 CPU는 많은 양의 데이터에 대한 적당한 계산의 승자이며 GPU는 적은 양에 대한 무거운 계산에 뛰어납니다. 이 모든 것이 우리를 프로그래밍 모델로 가져옵니다.

높은 수준에서 문제는 고대의 명예 MIMD / SIMD 토론입니다. 다중 지시 / 복수 데이터 시스템은 일반 및 상업용 컴퓨팅에서 가장 큰 승자가되었습니다. SMP를 포함하는이 모델에는 각각 자체 명령 스트림을 실행하는 여러 프로세서가 있습니다. 프랑스 주방과 동등한 컴퓨터로, 소수의 숙련 된 요리사가 비교적 복잡한 작업을 완료하도록 지시합니다.

반면 단일 지시 / 복수 데이터 시스템은 마스터 컨트롤러의 지시에 따라 책상에 연결된 점원으로 가득 찬 방이 더 닮았습니다. "모두 3 번과 5 번 줄을 추가하세요!" ILLIAC 및 일부 "미니 슈퍼"시스템에서 순수한 형태로 사용되었지만 시장에서는 사라졌습니다. 현재 GPU는 가까운 사촌이며 더 유연하지만 동일한 일반적인 철학을 공유합니다.

간단히 요약하면 다음과 같습니다.

  • 주어진 작업에 대해 CPU가 더 빠르지 만 GPU는 동시에 많은 작업을 수행 할 수 있습니다. 차이점은 64 비트 플로트에서 가장 분명합니다.
  • CPU 코어는 모든 메모리 주소에서 작동 할 수 있으며 GPU의 데이터는 더 작은 영역에 패키지되어야합니다. 전송 시간을 상쇄하기에 충분한 계산을 수행하는 경우에만 승리합니다.
  • 조건부로 무거운 코드는 일반적으로 CPU에서 더 행복합니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.