벤치리뷰·뉴스·정보/아키텍처·정보분석

[분석정보] 지포스 GTX 280 배정밀도 부동 소수점 연산

tware 2008. 6. 20. 21:00

 

배정밀도 부동 소수점 연산의 4개 포인트

 NVIDIA는 CUDA와 G80 아키텍처는 고성능 컴퓨팅 (HPC)에서 어느 정도의 성공의 발판을 잡았다. 이렇게 한 NVIDIA에 있어서, 배정밀도 부동 소수점 연산 지원은 필수적인 요소이다. HPC 응용 프로그램은 배정밀도가 필요한 국면이기 때문이다. GPU 컴퓨팅을 위한 Tesla 제품에서는 배정밀도 연산은 열쇠가 된다고 해도 좋다. "지금까지도 배정밀도의 벽으로 이식할 수 없었던 응용 프로그램이 꽤 있었다"고 NVIDIA는 필요성을 강조한다.

 문제는 현재의 실시간 그래픽에서는 단정밀도 (32-bit)까지의 부동 소수점 연산을 필요로 하는 것. 따라서 지금까지의 GPU는 단정밀도 연산 유닛 밖에 구현하지 않고, GPU에서 배정밀도 연산 지원에는 몇 가지 포인트와 의문점이 있다.

(1) IEEE 754 준수. 이것은 일반 응용 프로그램에서 실용되는 기능 여부의 중요한 전환점이된다.


(2) 배정밀도의 구현 방식과 성능. GPU의 경우에 추가적으로 구현되는 배정도 연산 유닛이 실제적인 성능에 도달했는지 여부.


(3) 단정밀도와 배정밀도 성능 비율. 이것은 실제 응용 프로그램이 어느 정도 균형을 필요로 하고 있는가 하는 문제와 관련된다.


(4) 설치 비용. 배정밀도의 구현에 의해 NVIDIA의 GPU 코어의 다른 기능이 희생되어 있는지 여부도 문제다.

 


IEEE 754 준수하는 특징 목록 공개

 (1) IEEE 754 준수에 대해서 NVIDIA는 아래와 같은 배정밀도 연산과 단정밀도 연산의 특징 목록도 제시. IEEE 754에 거의 따르는 것을 강조했다. 특히 Intel SSE나 Cell Broadband Engine (Cell BE) 등의 다른 SIMD 부동 소수점 연산 아키텍처와 비교해 IEEE 754 지원에서 동등한 수준에 있다는 것을 강조했다.

 NVIDIA가 목록을 보이며 IEEE 754를 강조하는 것은, GPU의 배정밀도 연산은 IEEE 754를 준수하지 않고, 실용이 되지 않는다는 가정을 부정할 수 있기 때문이다. 특징 목록 중 하양은 하드웨어 지원, 노랑이 소프트웨어 지원, 빨강이 비 지원을 나타낸다. GT200에서는 대부분이 하양 이지만, Flag가 빨강의 비 지원이다.

 "우리는 (필수 항목이 아닌 것도 포함) 가장 넓은 지원을 하고 있다. 예외는"Flag"이다. 왜냐하면 Flag는 부동 소수점 연산 프로세서가 정수 연산의 CPU와는 분리된 코 프로세서였던 시대의 유물이기 때문이다. 부동 소수점 코 프로세서는 CPU가 최종 워크의 flag를 읽을 필요가 있었다. 그러나 (정수 연산과 부동 소수점 연산이 원칩 된) 현대 아키텍처는 더 이상 불필요한 것이라고 판단했다 "라고 NVIDIA의 Sumit Gupta 씨 (Sr. Product Manager, Tesla GPU Computing, NVIDIA)는 그 이유를 설명한다.

 Flag를 지원하지 않는 반면에, CPU에서도 느린 "Denormal handling"을 GT200은 풀 스피드로 실행할 수 있다. SSE에 빠진 적화연산 (FMAD)도 1 사이클 throughput로 지원한다. 다만 1 유닛을 8 스레드 / 사이클에서 공유하기 때문에 명령 실행 후 8싸이클 다음 명령 발행이 가능해, 개별 스레드에서 보면 8 사이클 throughput으로 보인다.

 NVIDIA의 배정밀도 연산 유닛의 특징이 실용적인 사양인지 여부는 애플리케이션 개발자가 판단을 내리겠지만, 이미 테스트하고 있는 개발자는 특징에 문제가 없다고 설명했다.

 

배정밀도 연산 특징 목록

 

 

단정밀도 연산 특징 목록

 

 

배정밀도 연산의 개요

 


8개의 단정밀도 유닛에 1개의 배정도 유닛

 (2) 배정밀도의 구현에서는 NVIDIA는 배정밀도 부동 소수점 연산 전용 유닛을 1개, 연산 유닛의 묶음인 Streaming Multiprocessor ​​(SM)에 구현했다. 즉, GPU에 새롭게 새로운 유닛을 추가했다.

 NVIDIA는 단정밀도 부동 소수점 연산 유닛을 복수개 병렬 또는 2 패스로 사용해 배정밀도 부동 소수점 연산을 수행하는 구현 방법은 취하지 않았다. "SP (단정밀도 프로세서)를 사용하여 2단계로 실현하는 방법으로는 충분한 성능을 얻을 수 없다고 판단했다"고 NVIDIA의 Tony Tamasi (토니 타마시) 씨 (Vice President, Technical Marketing)는 설명한다 .

 이것은 기존의 단정밀도 연산 유닛을 이용하는 방법으로 먼저 배정밀도 지원 제품을 출시한 AMD를 견제한 발언이다. 다음에 자세히 설명하지만, NVIDIA 아키텍쳐에서는, 복수의 SP를 함께해 배정밀도 연산을 수행하는 방법은 AMD 아키텍쳐에 비하면 어렵다. 1개의 SP로 2패스로 실행시키는 방법은 NVIDIA 아키텍쳐도 가능하지만,이 경우 대기 시간이 길어지고 단정밀도 연산의 성능이 꺾이게 된다.

 GT200은 이 구현 방법의 결과 배정밀도 부동 소수점 연산의 피크 성능은 프로세서 코어 클럭이 최고 1.5GHz의 "Tesla (테슬라) T10P"에서 90GFLOPS 가 되었다. 이것은 T10P 단정밀도 최고 성능의 1.08TFLOPS (SP + SFU의 성능)의 12분의 1. GT200 코어의 메인 프로세서인 Streaming Processor ​​(SP)의 단정밀도 연산 능력의 비율은 1:8 이다. 90GFLOPS는 Intel 쿼드 코어와 비교하면 약 40% 증가. CPU 보다 높다고 하면 높지만, 다이 사이즈 (반도체 본체의 면적)와 전력 소비를 생각하면 결코 좋은 숫자는 아니다. 즉, 배정밀도 연산만하는 프로세서로는 GT200은 적합하지 않다. 그래서 중요한 것은 응용 프로그램 측이 단정밀도와 배정밀도를 믹스시키는 것이다.

 

GT200의 오버뷰

 

 

 

Telsa T10 프로세서 구성

 


단정밀도와 배정밀도를 믹스하는 애플리케이션

 (3) 단정밀도와 배정밀도 성능 비율은 앞으로의 질문으로 떠올라 온다.

 NVIDIA는 최고의 성능은 단정밀도로 벌지만 일정 수준의 성능 배정밀도도 지원해 혼합 정밀도의 응용 프로그램을 재촉하고 있다. CPU에도 SIMD를 통해 단정밀도 부동 소수점 연산이, 배정밀도 보다 최대 성능이 2배나 높다. 따라서 정확도의 혼합 아이디어 자체는 현실적 이라고 NVIDIA는 보고있다.

 이 발상은 AMD도 같지만, NVIDIA의 경우 배정밀도와 단정밀도의 피크 성능의 비율은 1:12로 보다 크게 벌어져 있다. (AMD GPU는 1:5). GT200의 메인 프로세서인 Streaming Processor ​​(SP)의 단정밀도 연산 능력과의 비율은 1:8이다. SP와 배정밀도 프로세서는 병렬로 달리기에 GT200의 배정도와 단정밀도를 동시에 달리게 했을 때의 성능 비율은 1:8이 된다.

 그러면 혼합 정밀도의 애플리케이션에서 1:2 ~ 1:12까지 중 어느 정도의 배정밀도 : 단일정밀도 성능 비율이 적절한가? 이 대답은 아직 나와있지 않다.

 원래, 배정밀도 연산을 필요로 하는 애플리케이션은 지금까지 모두를 배정밀도로 계산 하도록 작성되어 있는 것이 다수였다. 그러나 단정밀도 성능이 돌출된 GPU라는 플랫폼이 등장하면서, 상황이 바뀌기 시작했다.

 "성능을 생각하면 (GT200에 배정밀도 유닛이 있어도) 모두를 배정밀도로 계산하는 것은 좋은 생각이 아니다. 현실적으로는 단정밀도와 배정밀도의 혼합이 될 것이다. 일부 알고리즘은 단 정밀도에서 얼마의 배정밀도가 꼭 필요한 부분은 배정밀도와 분담한다. 주로 단정밀도로 연산하고 배정밀도로 돕는 발상 "이라고 Andy Keane (앤디 킨) 씨 (General Manager , GPU Computing Business Units)는 말한다.

 실제로 현재 CUDA에서 뛰고있는 응용 프로그램에는 원래 배정밀도로 짜여진 것도 있다고 한다. 이러한 개발자는 배정밀도를 단정밀도로 알고리즘을 새로 짜 넣는만큼, 프로그래머블 GPU 하드웨어의 성능에 매력을 느끼고 있는 것으로 보인다.

 "SPICE 시뮬레이터를 만든 엔지니어는 배정밀도를 모두 소비 할 필요가 있는지를 검토한 결과, 최종적으로 대부분의 부분을 배정밀도에서 단정밀도로 옮길 수 있었다고 한다. 배정밀도가 없으면 안되는 부분도 남아 있지만 그것에 대해 지금은 배정밀도 보드를 제공하고 있다 "고 Gupta 씨는 말한다.

 GPU 컴퓨팅의 이야기가 부상했을 때, HPC 등의 분야에서는 배정밀도의 성능이 필요하기 때문에 GPU는 극히 한정된 영역에서만 받아지고 수용되지 않았다고 말했다. 그러나 NVIDIA는 현재 믹스드 정밀도에 의해 그 벽을 극복할 수 있다고 보고있는 것 같다.

 

GT200 프로세서 수

 


배정밀도 연산 유닛의 비용

 (4) 배정밀도 연산 유닛은 그래픽에서 불필요한 부분이기 때문에 GPU에서 구현 비용이 중요하다. NVIDIA는 이에 대해 얼마나 많은 비용을 지불 했는가? 즉, 배정밀도 유닛을 구현에 의해 그래픽 용도의 기능 유닛의 수가 어느 정도 깎인 것인가?

 칩의 비용은 다이 (반도체 본체)에 차지하는 면적으로 측정된다. NVIDIA에서 GPU의 수석 아키텍트를 맡고 있는 John Montrym 씨는 다음과 같이 설명한다.

 "배정밀도 연산 유닛의 크기는 단정밀도 Streaming Processor ​​(SP)보다 어느 정도 크다. 하지만 그다지는 아니다. Streaming Multiprocessor ​​(SM)에서 차지하는 비중은 10% 이하에 불과하다 "

 아래는 GeForce GTX 280 (GT200)의 다이 레이아웃이다. 이 가운데 Streaming Multiprocessor ​​(SM)은 분홍색으로 보이는 부분으로 다이에 네모로 구분된 Texture / Processor ​​Cluster (TPC)의 한쪽 절반에 3 단으로 되어있다. TPC를 꺼내 확대한 것이 중간 그림으로 TPC 1개는 Atom 프로세서를 일회 (한공정) 크게 한 정도의 크기 (단 Atom은 45nm 공정으로 65nm인 TPC 2개 미만의 크기가 된다)이다. TPC 안의 SM을 확대 한 것이 하단의 그림이다. 배정밀도 유닛이 작은 SM 중에서 10% 이하를 차지하고 있다고 한다. GPU 전체로 보면 아주 작은 비율이다. 그러나 엑스트라 (특별히 추가) 비용인 것도 틀림이 없다.

 

GT200의 다이

 


 이렇게 GT200 아키텍처의 배정밀도 연산의 구현을 살펴보면 그런대로 비용은 지불하지만, 실용이 될 수 있는 구현임을 알 수 있다. 1:12 라는 단정밀도의 성능비도 애클리케이션에 따라서는 받아지고 수용 될 것이다. NVIDIA로서는, 이제 GPU 컴퓨팅의 마지막 체크 마크를 메운 것이다.

 

GT200과 G80의 비교

 

 

 

2008년 6월 20일 기사 입니다.

 

 

 

2012년 11월의 슈퍼컴퓨터 순위 TOP 500에서 별도의 연산 가속기를 사용한 슈퍼컴퓨터 에서의 비율은 위와 같습니다.(전체 500대 중에 2012년 가속기 사용 컴퓨터가 전후반기로 60대 전후인 그림) 당시 최신인 K20이나, 최초로 판매를 시작한 인텔 제온파이에 비하면, 기존의 구형 엔비디아 카드들이 차지하는 비율이 꽤나 높죠. 아무래도 엔비디아가 가장 적극적으로 뛰어든 힘을 바탕으로 사용된 제품에서의 점유율은 높습니다.

 

[분석정보] 크게 다른 Radeon HD 2000과 GeForce 8000의 아키텍처

 

 

[분석정보] Larrabee에 쫓기는 NVIDIA가 GT200에게 입힌 GPGPU용 확장

 

 

[분석정보] NVIDIA, Radeon HD 2000의 사양에 이의

 

 

[분석정보] 엔비디아 세계 최다 트렌지스터 칩 GK 110 공개

 

 

[분석정보] Intel의 Larrabee에 대항하는 AMD와 NVIDIA

 

 

[분석정보] Sandy Bridge와 Bulldozer 세대의 CPU 아키텍처

 

 

[분석정보] 그래픽 및 DirectX 로드맵을 정리