■고토 히로시무의 Weekly 해외 뉴스■
NVIDIA 치프·아키텍트 인터뷰 --슈퍼 스칼라&super pipeline화된 GeForce4
PC그래픽스 뿐만이 아니고, Xbox로 게임기에도 진출을 완수한 NVIDIA. 동사에서, Chief Scientist를 맡는 David B. Kirk(데이빗·B·카크) 씨에게, GeForce4나 XGPU, 향후의 GPU의 방향성등에 대해서 이야기를 들었다.
●GeForce4의 포커스는 Shader 기능의 강화
|
NVIDIA Chief Scientist David B. Kirk씨 |
[Q] GeForce4(NV25)의 그래픽스 엔진 「nfiniteFX II」에서는, Vertex Shader가 GeForce3(NV20)의 배의 2개가 되었다. 그러나, 그 다른 하드웨어가 어떻게 강화되었는지가, 발표 자료만으로는 이해하기 어렵다. 실제의 임플리멘테이션에 대해서 가르쳐 주셨으면 한다.
[Kirk씨] 우선, 기본적인 부분으로부터 설명하자. 우리는 통상, 매년 1개신아키텍쳐의 GPU를 개발해, 신특별과 신technology를 도입한다. 그리고, 약 6개월 후에 다음의 제품을 내, 그 특별의 퍼포먼스를 업 시킨다.
이번에 말하면(자), GeForce3 즉 NV20가 신아키텍쳐로, GeForce4 즉 NV25가 그 발전판이라고 하게 된다. 그리고, GeForce4에서는, GeForce3의 신technology였던 Programable Vertex Shader와 Pixel Shader의 기능의 향상에 특히 포커스 했다.
[Q] 즉, GeForce4의 아키텍쳐적인 확장은 Shader 부분에서, 종래부터의 고정 기능의 T&L엔진과 texture 유니트 부분에는 없다고 생각해도 좋은 것인지.
[Kirk씨] 그 밖에도 있지만, 주로 Shader 부분이다. 그것은, Shader를 강화한 (분)편이, 장기적으로 보았을 경우, 개발자가 도움이 된다고 판단했기 때문에다. 어느 쪽의 Shader도, 거의 2~3배는 고속으로 되어 있다. Vertex Shader는, GeForce3의 1개에서 2개가 되어, 동클락에서의 처리 성능은 배증. 한편, Pixel Shader도 처리에 따라서는 2배 이상 고속으로 되어 있다. 그것은, Pixel Shader에 파이프라인(의 단수)을 추가한 것과 데이터 패스를 추가한 것으로 실현되었다.
●슈퍼 스칼라&super pipeline화된 Shader
[Q] 왜 Vertex Shader만을 2배로 했는지. Pixel Shader를 2배로 하는 것은 생각하지 않았던 것일까. 기술상의 제약인가.
[Kirk씨] 원래, 우리는 Xbox의 XGPU로, Vertex Shader를 2개로 했다. 그 XGPU의 technology를, PC그래픽스 유저에게도 제공하는 것은 이익에 필적하고 있다고 생각했다. Vertex Shader가 2배가 되면, 정점 좌표 처리의 throughput가 훨씬 빨라진다. 그렇다면, 지오메트리 처리의 양을 늘릴 뿐만 아니라, 보다 긴 Vertex Shader 프로그램도 쓰기 쉬워진다. 이것은, 디벨로퍼의 GPU의 사용법의 방향성에 맞고 있다.
한편, Pixel Shader를 2배로 하는 것은 어렵다. 그것은, Pixel Shader가 방대한 실리콘 면적을 소비하기 때문이다. Vertex Shader보다 쭉 면적이 크기 때문에, 프로세스 기술의 진보가 필요하다. 그 대신에, 우리는 Pixel Shader에서는 throughput를 빠르게 하기로 집중했다.
GeForce3와 4에서는, 픽셀 파이프의 수자체는 같은 4개로, 4 픽셀/클락이다. 그러나, 파이프라인의 스테이지를 늘린 것으로, 보다 병렬에 콘퓨테이션이 실행되게 되었다. 지금까지, Pixel Shader의 throughput는 자주 2 클락으로, 4 클락이라고 하는 경우도 있었지만, 이것을 할 수 있는 한 throughput 1에 접근하도록(듯이) 했다. 이만큼으로 성능은 꽤 오르고 있다.
[Q] 이것은 알기 쉽다. CPU로 말하면 Pixel Shader는 super pipeline화되어 Vertex Shader는 슈퍼 스칼라화된것이 된다.
[Kirk씨] 그렇다 (웃음). 다음에, 개발자가 Pixel Shader 위에서 프로그램 한 스패셜 효과가 실제로 어떻게 프로그램되고 있을까를 연구했다. 게다가로, 그러한 자주(잘) 사용되는 프로그램이 Shader 위에서 고속으로 달리도록(듯이) 개량했다. 구체적으로는, texture 읽기 방편과 렌다 한 texture의 이용을 위한 패스를 추가하고 있다. 예를 들면, 리후레크쇼나르맙이나 그림자 맵과 같은 렌더링 한 texture의 맵은, 전용의 내부 데이터 패스를 사용하는 것으로, 렌더링 패스의 사브시크엔트로서 취급할 수 있도록(듯이) 했다.
그리고, Shader 이외의 에어리어에서 포커스 한 것은, anti-aliasing의 퍼포먼스의 향상이다. GeForce4에서는 Accuview Shifted Antialiasing라고 하는 기술을 도입했다. 퍼포먼스의 저하를 걱정해, anti-aliasing 기능을 오프로 할 필요가 없는 것을 목표로 했다.
●플랫 패널로 늘어나는 anti-aliasing의 필요성
[Q] Accuview Shifted Antialiasing이지만, 왜 고속으로 되는 것인가. 샘플링 포인트수자체는 바뀌지 않는 것 처럼 보인다.
[Kirk씨] 우리는, 2개(살)의 샘플링 포인트로 유사적으로 5 샘플을 얻을 수 있는 「Quincunx」샘플링 패턴을 GeForce3로 채용했다. GeForce4에서는, 샘플링 포인트를 쉬프트 하는 것으로 정밀도를 높이고 있다. 이 방식으로는, 정말로 1 픽셀로 4포인트 샘플링 했을 경우정도의 정밀도는 얻을 수 없지만, 충분한 정밀도와 퍼포먼스를 얻을 수 있다.
그리고, Geforce4에서는, 샘플링과 필터링의 프로세스를 분리했다. 필터링은, 그래픽스 엔진으로 온더 플라이로 행할 뿐만 아니라, frame buffer 디스플레이 엔진으로 행할 수가 있다. 즉, 샘플링만을 해 두어, 그것을 다음에 scan out 해 필터링 할 수가 있다. 이 테크닉도 고속화에 기여하고 있다.
[Q] Accuview에서는, anti-aliasing의 퍼포먼스의 문제는 완전하게 해결되었다고 생각하고 있는 것인가.
[Kirk씨] 물론, 문제는 결코 완전하게 해결될 것은 없다. 이라고 하는 것은, 향후도 지오메트리의 성능이 올라, 세이딩도 증가해 보다 고해상도도 가능하게 된다. 그렇다면, 좀 더 픽셀 필을 올리는 기술이 필요하게 된다. 그러나, 현재 상태로서는 꽤 만족할 수 있는 레벨에 이르렀다.
anti-aliasing가 중요하게 되는 것은, 향후 한층 더 플랫 패널 디스플레이가 보급하기 때문이다. 플랫 패널은 CRT보다 쭉 화상이 크리스프로 샤프해서, 픽셀이 클리어로 보여, jaggies가 눈에 띈다. 그러니까, anti-aliasing가 중요하게 된다. 게다가 플랫 패널이 되면(자), 디스플레이가 작아지므로 듀얼 디스플레이도 용이하게 된다. 그러니까, GeForce4에서는, 어느 제품도 nView Multi-display Technology로, 멀티 디스플레이에의 3 D가속화를 가능하게 하고 있다.
●차세대 GPU는 8 렌더링 파이프에?
[Q] NV25(GeForce4)는 0.13μm프로세스의 제품이 되면(자) 상상하고 있었다. 이라고 하는 것은, NVIDIA의 5 넘버 세대는, 지금까지 신프로세스 세대에 만들어져 왔기 때문에다. 그러나, 이번 NV25는 NV20(GeForce3)와 같은 0.15μm프로세스다. 이것은, TSMC의 0.13μm프로세스의 제품 비율이 매우 나쁘기 때문인지.
[Kirk씨] 아니, TSMC의 컨디션이 좋은가 나쁜가로 결정한 것은 아니다. 반도체 마켓 전체를 보았을 경우에, 아직 0.13μm로 이만큼 큰 팁을 제조하는 것이 어려운(die size가 커지면(자) 제품 비율이 떨어진다)라고 할 뿐(만큼)의 이야기다. 우리는, 신프로세스 technology를 사용하는 것에는 열심이다. 실제, 0.13μm에서도 최초로 사용하는 GPU 벤더의 하나가 될 것이다. 문제는 타이밍으로, 지금의 시점에서는 0.13μm는 아직 성숙하고 있지 않다. 너무 빠르지 않고 너무 늦지 않고의 타이밍에 0.13μm제품은 낸다.
[Q] 좋은 타이밍은 금년 후반쯤인가.
[Kirk씨] 그것은 좋은 추측이다. 물론, 내가 그것을 인정할 수 없지만 (웃음).
[Q] NV25(GeForce4)의 die size(반도체 본체의 면적)는 어느 정도인가?
[Kirk씨] 정확한 숫자는 말할 수 없다. 알고 싶다면 패키지를 열어 줄 수 있으면 된다. 말할 수 있는 것은, Pentium 4와 Pentium III를 맞추었던 것보다 거대라고 하는 것이다. 트랜지스터 카운트는 6,300만이니까, 그것도 당연하지만.
[Q] TSMC는 0.15μm로 복수의 옵션을 준비해 있다. 로 파워판의 「LV」나 하이 스피드판의 「HS」 등이다. 이 중, 어느 프로세스를 GeForce4에서는 사용하고 있는 것인가.
[Kirk씨] 응, 나 자신은, 실제의 곳, 프로세스를 어느 제품에 사용하고 있는지 자세한 것은 모른다. 말할 수 있는 것은, 휴대용전용 제품에는 로 파워 프로세스를 사용하고 있는 것이다. 데스크탑 제품에는 하이 스피드 프로세스를 사용하는 것이 이익에 필적하고 있지만, 정직한 곳, 모른다.
[Q] NV25(GeForce4)에 대해서는, 6 렌더링 파이프가 된다고 하는 소문도 흐르고 있었다.
[Kirk씨] 6 파이프는 제품의 플랜은, 지금까지 (들)물었던 적이 없다 (웃음). 아니, 파이프를 늘리는 것을 검토하고 있지 않다고 하는 의미는 아니고, 6 파이프 계획은 결코 없었다고 하는 것이다. ……왜냐하면, 보통 생각하면(자), 배들의 (분)편이 간단하겠지? 2, 4, 8같은 (웃음).
[Q] 라고 하는 것은, 다음의 세대는 8 파이프가 된다고 생각해도 좋은 것인지.
[Kirk씨] 그것은 코멘트할 수 없다 (웃음)
●향후의 신기능은 Shader의 알고리즘에
[Q] 이것은 친구(니시카와 젠지씨)로부터 물어 줘라고 부탁받은 질문이지만, GeForce4는 소프트 포커스 그림자와 Z-Correct 범프 맵핑에 대응했다고 발표되었다. 그러나, 이것들은 실제로는 Programable Shader로 실현되고 있는 것만으로는 없는 것인지.
[Kirk씨] 소프트 포커스 그림자는, Programable Shader의 필터링으로, 그림자 가두리 장식(레이스)의 소후트브렌딘그를 실현하고 있다. Z-Correct 범프 맵핑도, Pixel Shader의 기능이다.
[Q] 라면 Programable Shader를 갖춘 GeForce3에서도 실현될 수 있는 것으로, GeForce4의 신기능이라고 하는 것은 이상한 것이 아닌 것인지.
[Kirk씨] 확실히 GeForce4 고유의 기능이라고 하는 것은 아니다. 그러나, 방금전 설명한 것처럼 GeForce4의 Shader의 퍼포먼스를 향상시켰기 때문에, 이러한 기능이 빈번하게 사용하는에 참을 뿐(만큼)의 속도가 되었다. 그것이 신기능으로 한 이유다.
향후는, 신기능은 대부분이 이러한 Shader상에서 개발된 신알고리즘이나 수학 테크닉이 될 것이다. 이것들은 일례에 지나지 않는다. 지금부터는, 하드웨어로 특정의 기능을 더하는 것보다도, 프로그래머블 파이프라인으로 기능을 실현하는 (분)편을 선택해 간다. 그 쪽이 유저도 많은 기능을 얻을 수 있기 때문이다. 그리고, 디벨로퍼도 플렉서빌러티를 손에 넣는 것으로, 우리가 예기치 않은 것 같은 신테크닉을 개발 하도록 된다. 실제로, 그러한 움직임이 시작되어 있다.
[Q] 디벨로퍼 사이드로부터도 Shader를 사용한 새로운 알고리즘이 자꾸자꾸 등장하고 있는 것인가.
[Kirk씨] 그렇다. GeForce3를 내고 나서는 놀라울 정도의 상황이다. 우리가 GPU에 플렉서빌러티와 프로그라마비리티를 자꾸자꾸 더하는 것에 따라, 디벨로퍼가 무엇을 하는지 짐작이 붙지 않게 되고 있다. 그들이 쓸 것 같은 프로그램을 전부 테스트하는 것은 불가능하고, 놀라는 것 같은 사용법을 하는 사람이 나온다. 그러한 움직임은, 하드웨어를 개발하는 우리에게 인스피레이션을 준다.
[Q] 2년전의 E3로 만났을 때, 당신은 한시기 게임 디벨로퍼로 아키텍트를 하고 있었다고 말하고 있었다. 당신의 경험은, 그러한 때에 사는 것은 아닌 것인지.
[Kirk씨] 게임 개발 회사에 있던 것은, 매우 익사이팅인 경험이었다. 제작 프로세스의 감각과 게임 개발의 사고를 이해할 수 있게 되었다. 하드웨어를 만드는 측과 디벨로퍼측에서는, 같은 하드웨어에 대한 견해(보는 방법)이 전혀 다르다. 나는 게임 디벨로퍼의 의견도 와 신중하게 듣게 되었다.
●DirectX 8.1은 Microsoft에 있어 프아인 선택
[Q] DirectX 8.1에서는, ATI만이 서포트하는 Pixel Shader 1.4 technology가 들어가, 어디까지나 2개(살)의 다이레크션으로 나누어 지면서 있는 것처럼 보인다. 이 상황은 어떻게 생각할까.
[Kirk씨] Microsoft가 호환성의 없는 Pixel Shader의 버젼을 허락한 것은 조금 조말(poor)인 선택이었다고 생각한다. 거기에 따라, 하드웨어를 추상화 한다고 하는, DirectX의 노선있었다. 무엇보다, 다행스럽게도, Microsoft도 다음의 버젼에서는 이것을 픽스 할 생각(DirectX 9에서는 통합된다)다.
디벨로퍼들에게 (들)물어 보면, Pixel Shader 1.4는, Pixel Shader ATI라고 말할 것이다. 그들은, 어느 쪽이 우수하다고는 말하지 않을 것이다, 왜냐하면, 기본적으로 어느쪽이나 같은 그림을 얻을 수 있으니까. 유일한 차이는, NVIDIA의 Pixel Shader의 (분)편이, 훨씬 큰 인스토르드베이스를 가지고 있는 것이다. 그러니까, 아무도 Pixel Shader 1.4에 특화해 프로그램을 쓰지 않을 것이다.
[Q] 왜 NVIDIA는 N-patch의 서포트에 소극적인 의 것인지.
[Kirk씨] N-patch에 대해서는 판단이 어려웠다. 그러나, 나는, N-patch가 데자이나의 의도대로 정확한 표현을 할 수 있는 테크닉은 아니라고 생각하고 있다. N-patch에서는, 어느 오브젝트의 셰이프의 근사 표현을 하는 것이지만, 그 경우는 서페이스에 홀이나 불연속을 남겨 버릴 가능성이 있다. 홀이 다소 남아도 괜찮으니까 소프트인 셰이프의 캐릭터를 갖고 싶다고 한다면, N-patch는 유효하지만, 디벨로퍼가 어떻게 생각할까다. 즉, N-patch는 리알궶서페이스를 위해서(때문에)는 충분하지 않다, 중도의 스텝에 지나지 않는다고 생각한다. 그리고, 프로패셔널 유스의 디자인이나 CAD의 도구가 많고에서도, 근사 서페이스를 사용할 수 없는 것이 있다.
출처 : PC WATCH & 한미르 일한번역이용
|