엔비디아 젠슨 황의 "생각하는 기계"
Seiok 🤸‍♂ Kim
취소

엔비디아 젠슨 황의 "생각하는 기계"

젠슨황의 33년 경영사를 담은 첫 공식 자서전

젠슨 황은 어떤 사람인가.

젠슨황의 자서전 “생각하는 기계(원저: Thinking Machines)” (Witt et al., 2025) 를 읽는 중이다. 서문에 이런 말이 있다.

Practice even what seems impossible.

Marcus Aurelius Antonius

엔비디아 초기 이야기

어쩌면 새로운 회사를 만드는 과정에서 많은 영감을 주는 이야기는 결국 그 회사가 0에서 시작하던 그 지점일지도 모른다. 젠슨 황의 이야기는 어디에서 출발하는 것일까?

성공의 어머니는 절실함이다.

우리 회사는 앞으로 30일 후면 파산합니다.

젠슨 황은 RIVA128 (NV3) 개발 당시의 위기감을 잊지 않기 위해 회사가 막대한 이윤을 내고 있을 때 조차도 수 년간 사내 발표를 시작할 때마다 이 말을 되풀이 했다.

1996년 중반, 젠슨은 엔비디아의 NV2 작동 프로토타입을 전달하고, 100만 달러를 받기로 되어있었다. 젠슨은 세가 측에 엔비디아가 마이크로소프트와 손을 잡게 되어 드림캐스트 제작에는 참여하지 못하지만, 프로토타입을 납품한 것으로 기술적인 계약 조건은 이행했으니, 대금을 지불해 주기를 바란다고 전했다. 그러지 않으면 엔비디아는 파산할 것이라고도 덧붙였다. 세가에서는 의외로 담담하게 대금을 지급했다.

젠슨은 대금을 받자마자, 엔비디아가 가진 마지막 자금을 에뮬레이터를 구입하는데 사용했다. 이미 회사에서 재무적인 긴급 대책이 실행되는 상황에서, 에뮬레이션은 위험한 도박이었는데, 곧 출시될 NV3 칩에 들어간 350만 개의 트랜지스터 중 하나라도 배열이 틀렸다면, 실제 양산 단계에서 실패하고, 회사가 망할 수도 있었다.

1997년 초, NV3는 테이프아웃 단계에 도달하여, 설계 도면이 유럽의 반도체 공장으로 보내져 생산이 시작되었다. 늦은 봄에 완성된 NV3칩이 도착하였을 때, 완벽하게 초당 30프레임의 매끄러운 화면이 구현되었을 때 얼마나 다행이었을지 상상이 가지 않는다.

RIVA128 NVIDIA RIVA 128 CHIP

NV3는 대부분 이미 존재하는 기능을 모방한 칩이였지만, 다음의 혁신이 있었다.

  1. 메모리에서 프로세서로 데이터를 전송하는 속도가 128비트에 달했으며, 이는 업계 표준의 2배였다.

  2. 다기능성을 갖추어, 비디오게임을 가속하는 것 말고도, 스프레드시트 확대나 DVD를 재생하는 기능도 있었다. 이처럼 폭넓은 기능을 부각하기 위해 NV3를 ‘RIVA128’이라는 브랜드로 만들었다. (Real-Time Interactive Video and Animation accelerator).

1997년 8월, 이 제품이 매장에 도착했을 때쯤 엔비디아는 사실상 연료가 바닥난 상태였다. 다행히 리뷰어들이 RIVA128을 긍정적으로 평가했다. “초당 최대 500만 개의 삼각형을 렌더링할 수 있는 이 제품은 돈으로 살 수 있는 최고의 가속기다.” 이런 호평에 힘입어 엔비디아는 출시 후 첫 4개월 만에 RIVA 카드를 100만장 이상 판매했다.

그래픽 전쟁의 서막

존 카맥 John Carmack에 대한 이야기도 나온다. <둠>과 <퀘이크>의 수석 프로그래머는 '코드 외과의사'와 같은 사람이라고 적혀있는데, 자신의 베스트 셀러 게임을 렌더링하는 그래픽칩의 내부를 직접 해부해보는 사람이라는 뜻이다. 존 카맥의 팀은 특히 렌더링 작업에 일반적으로 쓰이는 알고리즘이 아닌, 해킹에 가까운 독자적인 방식을 통해 더 효율적인 프로그램을 만들어냈다. 그 중 유명한 것이 Fast Inverse Square Root (Quake III에서 사용된 알고리즘)이다.

자세한 내용은 생략하고, 다음의 수식을 계산하기 위해

\[f(x) = \frac{1}{\sqrt{x}}\]

보통의 프로그래머들은 다음과 같이 작성하겠지만

1
2
#include <math.h>
float y = 1 / sqrt(x);

카맥의 팀은 다음과 같이 쓴다는 것이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
float Q_rsqrt( float number )
{
	long i;
	float x2, y;
	const float threehalfs = 1.5F;

	x2 = number * 0.5F;
	y = number;
	i = * ( long * ) & y;
	i = 0x5f3759df - ( i >> 1);
	y = * (float * ) &i;
	y = y * ( threehalfs - ( x2 * y * y) );		// 1st iteration
//	y = y * ( threehalfs - ( x2 * y * y) );		// 2nd iteration, can be removed

}

실제로 정확도는 99% 수준에, 속도는 4배나 빨라진 이러한 괴랄한 코드에 대한 뒷 이야기는 다음에 정리해도록 하고,

중요한 것은, 엔비디아의 수석 엔지니어 데이비드 커크가 이렇게 말했다는 것이다.

이 특정 게임(퀘이크)을 가장 잘 렌더링하는 회사가 그래픽 전쟁에서 승리할 것이 분명해지고 있었죠.

데이비드 커크, 엔비디아

젠슨은 개발팀에 존 카맥만을 위한 새로운 칩을 만들라고 지시했다.

존 카맥이 원한 것들 중 하나는 여러 개의 ‘픽셀 셰이더’였다. 이는 퀘이크 같은 게임의 각 픽셀에 색상을 부여하는 알고리즘으로, 여러 개의 셰이더를 동시에 실행하면, 벽면의 빛 반사와 그 위에 튀는 피의 질감을 동시에 추가할 수 있었던 것이다. 물론 이런 이중 셰이더를 사용하기 위해서는 2배의 연산량이 필요했다.

당시 그래픽 가속기 시장의 최강자였던 3dfx는 2개의 그래픽칩을 같은 회로기판에 탑재하는 방식으로 이 문제를 해결했다. 데이비드와 그의 팀은 대신 픽셸 셰이딩 작업을 2개의 데이터셋으로 나누고, 각각의 연산을 동일한 명령어셋에서 동시에 실행하는, 이른바 ‘병렬 컴퓨팅’ 방식을 사용하고자 했다. 젠슨황은 처음에는 이에 대해 회의적이였다.

실리콘밸리에는 이전에 병렬 컴퓨팅을 시도했다가 실패한 회사들의 시체가 널려있습니다. 엔비디아를 제외하고는 성공한 병렬 컴퓨팅 회사는 단 한 곳도 없습니다. 단 하나도요. 제로입니다.

젠슨 황

그 ‘시체’들 리스트에는 다음이 있었다:

  • 시모어 크레이 Seymour Cray의 강력한 병렬 수퍼컴퓨터들은 너무 비싸고, 고객들을 복잡하다고 불평했다.
  • 오라클 Oracle의 창립자 래리 앨리슨 Larry Ellison이 수 백만 달러를 투자한 병렬 컴퓨팅 스타트업 엔큐브 nCube도 1990년대 후반 결국 실패하였다.

문제는 병렬 프로그래밍이 어렵다는 데 있었는데, 2개 이상의 데이터 스트림을 동시에 처리하려면 여러 개의 메모리 뱅크 사이를 오가야 했고, 이 과정이 극도로 복잡했기 때문이다. 이로 인해 병렬 컴퓨팅 회사들은 인텔에 밀려버렸다.

1998년 6월 ‘RIVA TNT’가 출시되었다. TNT는 ‘트윈 텍셀 Twin Texels’의 줄임말로, 정교한 스위칭 메커니즘으로 제어되는 듀얼 픽셀 렌더링 파이프라인을 뜻했다. 존 카맥은 이를 받아들고 감격해 ‘완벽한 카드’라고 불렀다. 그는 <퀘이크III>를 듀얼 파이프라인 아키텍처에 맞게 특별히 설계했고, 많은 팬들에게 <퀘이크> 시리즈는 엔비디아 하드웨어에서 가장 잘 실행된다고 조언했다. 존 카맥은 젠슨이 예언했던 바를 목격했다. 게임이 엔비디아에 기반을 제공하여 더 높은 수익성을 가진 워크스테이션 시장을 파괴하는 발판이 될 것이라는 점이었다.

References

  1. Witt, S., Gebauer, S., & Verlag, C. (2025). The thinking machine: Jensen Huang, Nvidia und der begehrteste Mikrochip der Welt. Campus Verlag. https://books.google.co.kr/books?id=3un80AEACAAJ
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.
바로가기

조건부 생성 모델링만으로 의사결정이 가능할까?

-