커뮤니티
 
 
 
 
 
커뮤니티 추천게시물       운영진 선정 | 추천순 | 최근댓글달린순 | 갤러리(포토)

 
 
 
사용기/필테기

지포 FX 성능에 관한 의혹...

김도완 (비회원)

조회 : 4548
작성일 : 2003/04/22 08:05
간편 URL : http://www.bodnara.co.kr/bbs/bbs.html?D=20&num=37865
트위터    페이스북
출처 : http://pc.watch.impress.co.jp/docs/2003/0421/kaigai01.htm

일본어 -> 한국어 번역...(수정없음)

GeForce FX의 퍼포먼스 의혹

●드라이버의 버젼으로 크게 바뀌는 GeForce FX의 퍼포먼스

NVIDIA의 GeForce FX패밀리의 퍼포먼스의 수수께끼가 화제를 부르고 있다. 드라이버의 버젼으로,60%(3DMarks)도 성능 이 바뀌기 (위해)때문에다. 이것은, PC Watch에서의 리뷰 결과 「1 슬롯 사양의 GeForce FX 5800 Ultra 탑재 카드 등장! 」(을) 를 봐도 아는대로이다. 같은 GeForce FX 5800(NV30) Ultra계 보 드로, 드라이버의 버젼이 Detonator 43.00으로부터 동43.45에 오 른 것만으로, 3 DMarks에서의 성능이 약60%도 오르고 있다.

어느 라이벌 GPU 메이커 업계 관계 메는, 이것을 「드라이버 매직」이라고 부른다. 그에 의하면, 「드라이버의 최적화만으로, 여기까지 갑자기 성능 이 향상하는 것은 통상에서는 생각되지 않는다」부터다.

ATI 테크놀로지스 재팬도 RADEON 9800/9600/9200패밀리의 일본에서의 발표회에 서, 이 문제를(지명은 하지 않기는 하지만) 지적 하고 있었다. 동사가 지적 한 것은, 성능 을 중시한 드라이버에서는, 본래 32 bit 부동 소수점 정밀도로 행해져야 할 처리가, 16 bit 부동 소수점 정밀도로 행해지고 있다고 하는 점. 같은 시다의 처리 결과를 RADEON 9600(RV350)과 라이벌 GPU로 비교. 명확한 묘화의 순조로움이 차이를 보여 내부 24 bit 정밀도로 처리하는 RV350에 대해서, 라이벌 GPU의 처리는 16 bit 정밀도로 행해지고 있 는 것을 시사했다.

타때, 드라이버에 따라서는, 데이터 정밀도를 희생으로 해 성능을 향상시키고 있다고 하는 같은 지적은, 과거 1개월정도의 사이에, 여러가지 리뷰 사이트에도 오르고 있다. 그 때문에, 리뷰 사이트에서는, 2 세대의 드라이버에서의 벤치마크 결과를 게재하고 있 는 케이스도 있다. 또, 어느 GPU 관계 메는, 고속의 Detonator 43.45에서는, DirectX 9의 규 정에 반하고 있기 (위해)때문에, Microsoft의 WHQL의 인정은 통하지 않을 것이라고 지 적 한다. 대논쟁이 되고 있는 것이다.

●32 bit라면 저속으로 16 bit라면 고속의 GeForce FX

타는, 드라이버에서의 화제가 나오는 것보다도 훨씬 전부터, GeForce FX계 아키텍쳐
에서는 데이터 정밀도에 의해 처리 성능에 큰 차이가 나는 것은, 알려져 있었다. DOOM 의 개발자인 id Software의 John Carmack씨는, 금년두에 「Plan John Carmack 」로 NV30와 R300의 성능에 대해서 언급하고 있었지만, 그 중에 벌써 모드에 의한 성능의 차이를 지 적 하고 있다.

그것에 따르면, OpenGL ARB(Architecture Review Board) 2의 패스를 사용했을 경우에는 NV30는 R300(RADEON 9700 Pro)보다 꽤 늦지만, NV30에 최적화한 벤다스페시픽크인 모드를 사용했을 경우에는 훨씬 빨라진다고 한다. 그 이유는, R300는 항상 같은 정밀도 로 처리하지만, NV30는 퍼포먼스가 다른 정밀도를 내부적으로 서포트하고 있기 때문 이라고 한다.

즉, R300계는 어느 데이터 정밀도에서도 항상 같은 속도이지만, NV30는 고정밀도 (32bit)라면 매우 늦어져, 저정밀도(16bit)라면 고속으로 된다는 것이다.

이 건은, Carmack씨 뿐만이 아니고, 많은 업계 관계 메가 지적 한다. 또, NVIDIA몸도, GeForce FX아키텍쳐에서는 「16 bit의 (분)편이 고속으로 달린다」(Geoff Ballew씨, Product Line Manager) (일)것을 인정하고 있다. 3월에 개최된 GDC(Game Developers Conference)에서도, NVIDIA는 퍼포먼스상의 이유로부터, 필요가 없는 한 32 bit는 아니 고 16 bit를 사용하도록(듯이) 추천 하고 있었다.

분은 레뷰아는 아니기 때문에, 성능에 대한 자세한 것은 그 밖에 양보하지만, 이러한 정보는, 타는 아키텍쳐면을 생각하면(자) 납득할 수 있다. 추측상의 GeForce FX아키텍 쳐와 부합 하기 때문이다.

●연산 유니트의 정밀도에서의 선택의 차이

DirectX 9의 최대의 특징의 하나는, 픽셀 처리가 정수 뿐만이 아니고, 부동 소수점에
확장된 것. 즉, 서페이스포맛트(=데이터 타입)가 확장되어 부동 소수점 정밀도가 더해 졌다. DirectX 9의 규정 하는 부동 소수점 데이터 타입은, 각 색 16 bit의 ABGR16f, 각 색 32 bit의 ABGR32f의 2 종류. 모두 4 개씩의 데이터를 동시에 처리하는 SIMD(Single Instruction, Multiple Data)이므로, 환산하면(자) 64 bit와 128 bit가 된다.

즉, DirectX 9 세대 GPU에서는, 16bit(64bit SIMD)와 32bit(128bit SIMD)의 부동 소수점 연산을 서포트할 필요가 있다. 이것은 OpenGL 2.0에 대해서도 같다.

그러나, 타 때는 GPU는 반드시 32 bit 정밀도의 처리를 하고 있지 않다.

예를 들면, ATI Technologies와 S3 Graphics는, 내부에서는 24 bit로 처리하고 있다. ATI 는 플래그 파스의 RADEON 9700/9800(R300/R350)의 Pixel Shader에 8개의 24 bit 부동 소 수점 연산 유니트를 실장했다. S3 Graphics의 DeltaChrome도 이와 같이 8개의 24 bit 유니 트를 가진다.

양 회사의 어프로치는 이 점에서는 매우 닮고 있어, API로서는 32 bit나 서포트하지만, 내부에서는 정밀도를 떨어뜨린다. 16 bit 포맷도 32 bit 포맷도, 전부 24 bit로 실행된다. 16 bit와 32 bit의 어느 쪽의 데이터도, 같은 속도로 연산을 할 수 있으므로, 32 bit시에도 퍼포먼스 로스가 없다. 생략하고 있다고 생각할지도 모르지만, 리얼타임 CG를 중심으 로 생각했을 경우에는 이것으로 충분한 정밀도라고 말한다.

그에 대해, NVIDIA는 완전히 다른 방법을 뽑았다. GeForce FX패밀리에서는, 32 bit 내 부 정밀도로 처리를 행한다. 즉, 32 bit에서 24 bit에 데이터 정밀도를 떨어뜨리는 것이 없 다. 좋은 (일)것이지만, 이것에는 트레이드 오프가 있다. 그것은 유니트수와 처리 속도 다. NV30에서는 4개의 32 bit 연산 유니트 밖에 탑재하고 있지 않으면 NVIDIA는 설명한 다. 즉, Pixel Shader의 정밀도는 높지만 유니트수는 타사의 플래그 파스 GPU의 반이라고 하게 된다.

NVIDIA가 연산 유니트를 반으로 줄인 것은, 탑재할 수 있는 트랜지스터 카운트의 제 약으로부터라고 생각된다. 24bit(96bit SIMD) 연산 유니트와 32bit(128bit SIMD) 연산 유 니트에서는, 유니트의 코스트(트랜지스터 카운트와 die size)에 큰 차이가 있기 때문이 다.

●GeForce FX에서는 16 bit 유니트 2개로 32 bit 연산인가?

그럼, 왜 이 GeForce FX아키텍쳐의 경우, 정밀도를 16 bit에 떨어뜨리면 성능이 높아지는 것인가. NVIDIA의 Geoff Ballew씨(Product Line Manager)는 「메모리 대역, 레지스터 스페이스, temporary storage 등 모든 점에 두어 16 bit 부동 소수점은(32 bit로부터 적게 된 다. 그러니까, 훨씬 고속으로 된다」이라고 설명한다. 그러나, 타 때는 그러한 차이로부 터 추측되는 것보다도, 훨씬 큰 성능차이가 정밀도에 의해 생겨 있는 것처럼 보인다.

여기로부터 생각되는 것은, NVIDIA의 Pixel Shader가, 타는 16bit(64bit SIMD) 유니트 2 개로 32bit(128bit SIMD) 연산을 행하고 있을 가능성이다. 32 bit 유니트가, 16 bit 연산을 행하는 2개(살)의 유니트에 분할할 수 있으면(자) 바꿔 말해도 좋다. 이러한 실장은, 타 는 드문 것은 아니다. CPU의 세계에서는 옛부터 행해져 온 것으로, 지금도 다용되고 있 다. 매우 보통 수법이다.

만약, GeForce FX패밀리의 Pixel Shader가 이 실장 방법을 취하고 있다고 하면(자), 16 bit시에는 연산 유니트수는 2배로 증가하게 된다. 그렇다면, 데이터 정밀도에 의해 성능 이 크게 바뀌는 것도 납득할 수 있다.

또, GPU의 개발자 사이드에 서 보면, NVIDIA가 이러한 실장 방법을 취하는 것은 당 연하다. (은)는 커녕, 32 bit화로 이러한 실장으로 하지 않으면, 그 쪽이 이상하다. 이라고 하는 것은, 만약 32 bit 처리 밖에 할 수 없는 연산 유니트를 실장했을 경우에는, 16 bit 처 리시에도, 타사와 비교해 퍼포먼스가 크게 떨어져 버리기 때문이다. 그러나, 16 bit 유니 트 2개로 32 bit를 처리시킨다면, 16 bit 처리시의 throughput는 적어도 타사와 손색이 없는 레벨이 된다. 그리고, 32 bit 처리시에는, 타사가 추종 할 수 없는 풀의 고정밀도를 실현 할 수 있다.

이렇게 해 보면(자), 이 건이, GeForce FX의 드라이버와 성능이라고 하는, 근거리의 시 점 이상의 문제를 포함하고 있는 것을 안다. 그것은, GPU에 필요한 데이터 정밀도가 도 대체 얼마나인가. 또, GPU는 리얼타임 CG에 초점을 맞추어야할 것인가, 오프 라인 CG 에 초점을 맞추어야 할 의 것인지라고 하는 문제다.

현재의 정보로부터에서는 다음과 같이 추측된다. ATI나 S3는, 리얼타임 CG로 시다를 빠르게 움직이는 것이 중요라고 생각해 정밀도보다 성능을 우선해 24 bit로 했다. 역을 말하면, 리얼타임 CG에서도 32bit API에서의 24 bit 정도의 정밀도는 필요라고 생각한 것이다.

그에 대한 NVIDIA는, 오프 라인 CG의 시다에서의 정밀도에 대한 엄한 요구를 중시 해, 처리가 늦어지는 것을 각오 위에서 32 bit를 실장. 그 대신해, 16 bit에서는 고속으로 되도록(듯이) 했다고 생각된다. 이것은, 속도가 필요한 리얼타임 CG는, 현재 상태로서 는 16 bit 중심에서 좋으면 결론지은 것처럼 보인다.

문제는, 어째서 NVIDIA만이 그런 선택을 했는지. 그리고, NVIDIA의 선택은 지지를 받고 있는지라고 하는 점에 있다. 현재는, NVIDIA가 이러한 GeForce FX아키텍쳐의 설 명을 충분히 행하고 있지 않기 때문에, 자꾸자꾸 의문이 부풀어 올라 있는 것처럼 보인다.


참고하시길...
4
좋은 내용의 글이라면 추천해주세요.
로그인을 하지 않아도 추천 하실 수 있습니다.
xxx
불법 광고글 신고하기
I
이 게시물의 댓글 보기
추천제안내
좋은 게시물에는 추천을 할 수 있습니다. 추천이 5 이상이면 메인페이지 헤드라인에 게시물을 걸어 드립니다.
적립된 포인트로 진행중인 이벤트에 참여하시어 경품을 받아가실 수 있습니다.

포인트안내 글작성 : 20점, 추천클릭 : 2점, 추천받은사람 2점, 댓글작성 : 4점 (2008.12.29일부터)
  sprker /  2003-04-22 11:47 / IP/ 신고/ 이댓글에댓글달기
  국어 다시 배우시오...
이게 뭡니까...
문법에 맞게 좀 써요..
  이찬희 /  2003-04-22 12:20 / IP/ 신고/ 이댓글에댓글달기
  일어 한어..번역사이트를 통해 번역되었다구 위에서 밝히고 있지
않습니까?수정없음 이라고..... 제데로 글부터 읽고 따지세요..
  송충이 /  2003-04-22 12:22 / IP/ 신고/ 이댓글에댓글달기
  벙역기를 돌리셨군요.
정보만 빨리 제공해준다면 괜찮습니다.^^
나름데로 재미있네요.. ^^
  sprker /  2003-04-22 13:45 / IP/ 신고/ 이댓글에댓글달기
  번역기로 돌렸다는 말이 어디 있나...
싸이트만 있고 일어에서 한국어 번역으로 해놓으면
무조건 번역싸이트냐..
표기나 제대로 해놓았으면 읽다가 답답해 미치겠다.
  sprker /  2003-04-22 13:47 / IP/ 신고/ 이댓글에댓글달기
  이런걸 정보라고 올리는 사람이나
좋다고 하는 사람이나..
  sprker /  2003-04-22 13:53 / IP/ 신고/ 이댓글에댓글달기
  다른 사람 죽어라 번역으로 레포트할 때
번역기 한번 돌려서 염치 없이 레포트 내는 사람 볼때
얼마나 짜증나는지...
그걸 또 학점 점수 주는 사람이나...
  김도완 /  2003-04-22 14:17 / IP/ 신고/ 이댓글에댓글달기
  싫으면 보지마라 뭔 말이 많냐? 초딩이냐?
ㅉㅉㅉ 번역기 돌려서 레포트 내는 사람은 잔머리가 아주 좋은 사람이지 칭찬해주고 싶군 흐흐흐.
니가 더 돌대가리네 미쳤다고 일일이 번역하냐 ㅋㅋㅋ. 열심히 하쇼
돌대가리야 ㅋ
  jack /  2003-04-22 14:18 / IP/ 신고/ 이댓글에댓글달기
  일본어 -> 한국어 번역...(수정없음)
여기서 수정없음이라 함은 곳 번역기를 돌렸다는 뜻으로 해석될 여지가 충분합니다.
본문중 16 bit의 (분)편이 고속으로 달린다」(Geoff Ballew씨, Product Line Manager) (일)것을 인정하고 있다
위에서 (분) (일)이라는 낱말은 이것이 번역기로 돌렸다라는 걸 확신하게 해줍니다.

또 sprker님은 과거 레포트 낼 때 번역기로 돌린 사람 때문에 짜증이 났던 기억이 있고, 그런 과거의 쓰라린 기억 때문에 번역에 관하여 필요이상의 과민반응을 보이는 것 같습니다.
뜬금없이 레포트 얘기가 나오는 것이 그 정황증거라 하겠습니다.

결론적으로 이유가 무엇이건 sprker님은 현재 짜증이 난 상태이고, 그런 상태의 사람은 가급적 접촉을 피하고 가만히 놔두는 것이 상책으로 사료되는 바, 그의 글이 신경에 거슬리더라도 넓은 아량으로 이해하고 포용하고, 그냥 무시함으로써 괜히 시간낭비하는 일이 없도록 해야 하겠습니다.
  늑대 /  2003-04-22 14:52 / IP/ 신고/ 이댓글에댓글달기
  jack 늼의 말이 올소~~~~
  sprker /  2003-04-22 15:20 / IP/ 신고/ 이댓글에댓글달기
  위의 글을 읽고 무슨내용인지 이해됩니까..
참 대단하십니다.
  하하하 /  2003-04-22 15:23 / IP/ 신고/ 이댓글에댓글달기
  이해 못하면 초딩부터 다시 다녀야지 ㅡㅡ+
  이상윤 /  2003-04-22 15:24 / IP/ 신고/ 이댓글에댓글달기
  대충 이해갑니다만-_-
  sprker /  2003-04-22 15:36 / IP/ 신고/ 이댓글에댓글달기
  비난해서 잘못한점은 있습니다만,
이런 글을 올리는 의도가 뭔지..
어법도 맞지 않는 글을 올리면서 자기 잘난 줄 알고
빨리 올렸다고.. 자랑하는건지
  대단 /  2003-04-22 15:39 / IP/ 신고/ 이댓글에댓글달기
  위의 글을 읽고 이해가 됩니다. 이해하는 사람들이 대단한 것이 아니고 님이 모자른 것이라 사료됩니다.
  켁 ㅡ.ㅡ; /  2003-04-22 15:43 / IP/ 신고/ 이댓글에댓글달기
  이런 글을 올리는 의도>> 최신정보를 전달하기 위해서
자기 잘난 줄 알고 빨리 올렸다고 자랑하는 건지>> 님의 생각일뿐... 어디에도 자랑하는 내용은 안보입니다. 더구나 출처를 명확하게 밝혔으며, 번역된 글이라고 명시했는데 무엇이 문제인지... 님 보기 않좋습니다. 자중하세요.
  김도완 /  2003-04-22 17:49 / IP/ 신고/ 이댓글에댓글달기
  으잉 왠리플이 이리도 많이... ㅡㅡ;; 그리고 이름도용까지 하셨네용... ㅡㅡ;;

흠... 해석기 내용이 맘에 안드신다면... 담부턴 일본어 내용을 그대로... ㅡㅡ;;

  김도완 /  2003-04-22 17:51 / IP/ 신고/ 이댓글에댓글달기
  그리고 이 번역글이 싫다시면... 위에 링크 있으니 직접... 일본어 사이트를 방문해 보시는게... 영어는 좀 되는데... 일본어는 그림 같아서... 쩝...
  김도완 /  2003-04-22 17:54 / IP/ 신고/ 이댓글에댓글달기
  한글로 해석을 하면 간단하게...

"지포스 fx의 드라이버 최적화로 인한 60% 성능향상은 실제적인 성능향상이 아니라 32비트 처리가 아닌 16비트 처리에서의 성능향상으로 엔비디어가 왜 그런 방법으로 설계했는지 의아스러워한다. 화질을 낮추면서 속도를 얻어내기 위한 편법이지 완전한 성능향상은 아니다."

이 정도입니다. 살짝 개인적인 의견이 들어갔네용... 그럼... ㅡㅡ;;
  김종훈 /  2003-04-22 18:18 / IP/ 신고/ 이댓글에댓글달기
  번역기 돌려본 경험이 있는 분이라면 충분히 이런 글과 문장에 대해서 이해할 수 있겠네요.. 약간의 오차는 있겠지만 굵직 한 건 바로 이해할수 있내요..
어찌됐거나 좋은자료를 빠른시간내에 올릴수 있다는 장점이 있지 않습니까?
  김현우 /  2003-04-22 18:22 / IP/ 신고/ 이댓글에댓글달기
  김도완님 그렇게 함축적으로 줄여버리시면 전체적인 내용이 어긋나 버림으로 댓글을 달겠습니다.

애초에 FX시리즈는 32bit 환경을 목표로 두고 나왔습니다. 그리고 타사의 제품군은 24bit가 최종 스펙이죠. 기존의 벤치는 32bit와 24bit의 벤치결과이므로 틀렸다는 겁니다(근데 이에대해 언급하는 벤치는 못봤습니다.)

글쓴이는 드라이버로 향상되기에는 그 폭이 너무 큰것을 의아해하고 이유를 도출해 내는 과정을 적은거지, 결코 결론은 내지 않았습니다(물론 누구든 도완님같은 결론을 도출해낼 수 있을거라고 생각합니다:) )

여러군데서 언급되는 FP16, FP24, FP32 환경에서 엔비디아는 속도경쟁을 포기하고 시네메틱3D를 선택했습니다. 그 결과물로 FP32를 택했지만 MS는 '그정도는 필요없다'라고 생각하고 FP24를 표준으로 정해버리죠.

FX제품군은 위에서 언급한대로 16bit의 파이프라인이 2개씩 모여있는 구조입니다. 32bit가 되면 둘이 합쳐서(-_-;) 연산을 하고 16bit일때는 나뉘어서 연산을 하는 X*2의 구조지요. 그러다보니 자연 숫자놀음은 떨어질 수 밖에 없는겁니다. 표준연산 24bit를 할때 둘이 합쳐서 하다보니 실제적인 파이프라인은 X가 되버립니다(두개가 합쳤음;). 이 점은 숫자놀음 결과를 보다시피 엉망입니다. --;

어쩔 수 없이 엔비디아는 16비트 드라이버를 내놓은겁니다.
편법이라는 말은,
애초에 그럴 목적으로 제작된 FX제품군에는 어울리지 않는 단어입니다.

쩝, 제가 궁금한것은
24비트와 32비트의 차이점이 엔비디아가 올인할 정도로 큰것인지... 그것이 궁금할 따름입니다.
  김도완 /  2003-04-22 18:34 / IP/ 신고/ 이댓글에댓글달기
  명쾌한 설명에 한표 ^^/
  하하 /  2003-04-22 19:29 / IP/ 신고/ 이댓글에댓글달기
  으흠 여기가 베틀뉴스인가..... 대체...... 근데 웬일로 1등! 은안보이네
ㅋㅋㅋㅋㅋㅋ
  heaye /  2003-04-22 22:35 / IP/ 신고/ 이댓글에댓글달기
  근데 이게 최신뉴스는 아니라는.--..
이미 이거 기사로 읽은지 한참인데.. 움..
  오성학 /  2003-04-22 22:50 / IP/ 신고/ 이댓글에댓글달기
  제가 올린 수정기사도 있습니다 같이 보시면서 비교를 하세요
원문이랑은 완전 다릅니다만 번역결과가 다르죠 문맥상의 구조로 수정했기때문에 많이 고쳤습니다.