슈퍼 컴퓨터의 트렌드가 GPU 중시로 되는 등, GPU는 게임이나 영화의 그래픽뿐만 아니라, AI 개발 및 기상 예보 등의 분야에서도 활용되고 있다. 컴퓨팅의 주역으로 GPU를 높이는 계기를 만든것은, 과거 NVIDIA가 개발 한 코드 네임 "NV20"이라고 알려져 있다.
옛부터 그래픽 렌더링 기술을 강화하는 존재로서 "게임"과 "애니메이션"을 들 수 있다. 1995년에 픽사가 토이 스토리를 전편 디지털 제작하여, 컴퓨터 애니메이션의 가능성을 보여주었다. 토이 스토리의 애니메이션은, 각 개별 프레임을 렌더링하고 합치는 것으로 제작되었지만, 이러한 방법은 게임 세계에서는 통용되지 않는다. 게임에서는 명령이나 상황에 따라 다양한 장면을 렌더링해야 할 필요가 있고, 실시간 렌더링이 요구되는 것이다.
1970년대 이후, 비디오 게임의 영상은 컴퓨터의 진화와 함께 매일, 상당한 발전을 보여왔다. PC 게임 시장이 부풀어 오르는 분위기 속에서, CPU와의 대비 "GPU"라고 부르는 그래픽 처리를 할 칩이 등장하는 것으로, NVIDIA도 GeForce 시리즈를 세상에 내놓고, 3dfx와의 경쟁에 불을 붙였다.
3dfx와의 싸움에서 승리를 거둘즈음, NVIDIA는 새로운 코드 네임 "NV20"이라는 제품의 개발에 착수했다. 당시 NVIDIA에는, 지금까지의 GeForce 2 시리즈의 GPU를 더 효율적인 것으로 바꾸어 성능을 높인다는 "최적화" 노선과, 완전히 새로운 기능을 개발한 "야심찬" 노선 2종류를 선택할 수 있었다는 것. 야심찬 프로그램은 게임 개발자가 이용하지 않을지도 모른다는 기술도 포함되어 있었다고 한다.
결국, NVIDIA는 보다 높은 성능을 제공 할 수있는 야심찬 길을 선택하고, NV20의 개발 방침이 정해졌다. NV20에 처음 종사 한 것은 메모리의 분할 방법의 변경이었다는 것. 128비트의 데이터를 4개의 32비트 데이터로 본할하는 것으로, 메모리의 데이터를 효율적으로 가져오는 프로세스가 생성되었다. 또한 3D 장면에서 다른 물체에 가려진 물체를 예측하여 렌더링을 절감하는 "z-cull"라는 시스템이 채용되었다. 이러한 변화를 실현하기 위해 프로세스 규칙은 150nm라는 당시로서는 어려운 미세화 기술에 NVIDIA는 최선을 다하고 있었다.
이러한 변경 외에도, NVIDIA는 게임 개발자, 픽셀 쉐이더와 버텍스 쉐이더를 변경 할 수있도록 NV20을 일부 프로그래밍 가능한 것으로 변경했다. 개발자가 완전히 프로그램 설정을 할 수 있는것은 아니었지만, NVIDIA는 NV20에서 처음으로 게임 개발자가 설정할 수있는 온보드 기능을 만들었다.
이렇게 NV20은 "GeForce 3"로 제품화되어 출시되는 것으로, PC 게임을 위한 그래픽 카드 외에 커스텀 칩으로 Microsoft의 오리지널 Xbox에 채용되게 되었다.
이 NVIDIA의 결정은, 단기적으로 보면 Xbox 용의 커스텀 칩으로 대중적인 것처럼 보이지만, 장기적인 관점에서 말하면, "GPU를 그래픽 이외의 용도로 사용하는 문을 열게했다"라고 IEEE Spectrum은 말한다. GeForce 3 이후의 NVIDIA GPU는 프로그래밍 기능을 계속 제공하게되며, 그 결과 개발자는 자신의 목적을 위해 "GPU 해킹"을 수행하게 된 것. 이를 통해 GPU를 기계 학습 알고리즘의 교육 및 기후 변화 예측 등 과학 기술 계산에 이용하는 것으로 이어진다는 것이다.
게임 그래픽이라는 GPU의 기능을, 다양한 컴퓨팅 기술에 응용할 수있는 기초가 된 것은, NVIDIA가 NV20의 개발을 도입, 개발자에게 사용자 지정 프로그램의 여지를 부여했다는 것이 아닐까....