WebGPU의 성공은 더 이상 해커 뉴스의 헤드라인이나 트위터의 찬사에 머물지 않았다. 그 파동은 마침내 구글이라는 거대한 성채의 가장 깊숙한 곳까지 밀려들기 시작했다.
어느 날 오후, 드미트리는 한 통의 회의 초대를 받았다. 발신인은 구글의 핵심 제품 중 하나인 ‘Google Meet’의 기술 책임자였다.
제목: WebGPU 통합을 위한 기술 협력 논의
회의실에 들어서자, Meet 팀의 엔지니어들이 그를 기다리고 있었다. 그들의 표정에는 기대와 함께 해결되지 않은 고민의 흔적이 묻어 있었다.
Meet 팀의 리드 엔지니어, 프리야가 입을 열었다.
“드미트리, 먼저 WebGPU의 성공적인 출시에 대해 축하드립니다. 저희 팀 모두가 깊은 감명을 받았습니다. 그리고… 저희는 당신 팀의 도움이 절실히 필요합니다.”
그녀는 화면에 Meet의 화상 통화 화면을 띄웠다. 그리고 ‘배경 흐림(Background Blur)’ 효과를 켰다. 발표자의 배경이 부드럽게 흐려지는, 이제는 모두에게 익숙한 기능이었다.
“이 효과의 이면에는 복잡한 연산이 숨어 있습니다. 저희는 머신러닝 모델을 이용해 비디오의 각 프레임에서 인물과 배경을 분리(Segmentation)하고, 배경에만 블러 효과를 적용합니다. 문제는 이 모든 연산이 지금까지는 CPU나 WebGL의 제한적인 기능 위에서 이루어졌다는 겁니다.”
그녀는 성능 분석 도구를 띄웠다. CPU 사용률 막대가 위태롭게 춤을 추고 있었다.
“보시다시피, CPU 부하가 상당합니다. 특히 저사양 노트북이나 크롬북에서는 이 효과를 켜는 순간 팬이 굉음을 내며 돌기 시작하고, 배터리는 순식간에 닳아버리죠. 화상 회의는 보통 30분 이상 지속되는데, 이건 사용자 경험에 치명적입니다.”
드미트리는 조용히 고개를 끄덕였다. 그는 이미 문제의 핵심을 꿰뚫어 보고 있었다.
“저희의 질문은 간단합니다.”
프리야가 드미트리를 똑바로 바라보았다.
“WebGPU의 컴퓨트 셰이더를 이용하면, 이 모든 비디오 처리 파이프라인을 CPU에서 GPU로 옮길 수 있을까요? 그래서 사용자들의 노트북을 비명 지르게 하는 대신, 놀고 있는 GPU의 힘을 빌릴 수 있을까요?”
그것은 WebGPU가 답하기 위해 태어난 질문과도 같았다.
그날 이후, Dawn 팀과 Meet 팀의 긴밀한 협력이 시작되었다. 이것은 새로운 기능을 만드는 것과는 다른 종류의 도전이었다. 이미 수백만 줄의 코드로 이루어진 거대하고 복잡한 제품의 엔진 일부를, 멈추지 않고 달리는 자동차의 바퀴를 갈아 끼우듯 교체하는 작업이었다.
Meet 팀은 그들의 비디오 처리 로직을 WGSL 컴퓨트 셰이더로 다시 작성했다. 인물을 분리하는 모델 연산, 가우시안 블러를 적용하는 이미지 처리 연산 등이 모두 GPU 위에서 병렬로 처리되도록 재설계되었다. 드미트리와 Dawn 팀은 그 과정에서 발생하는 문제들을 해결하고, Dawn 엔진이 실시간 비디오 스트림을 효율적으로 처리할 수 있도록 최적화하는 지원을 아끼지 않았다.
몇 주 후, 프리야가 드미트리를 다시 불렀다.
그녀의 얼굴에는 숨길 수 없는 흥분이 가득했다. 그녀는 두 개의 브라우저 창을 나란히 띄웠다. 왼쪽은 기존의 WebGL 기반 Meet, 오른쪽은 WebGPU 기반의 프로토타입이었다.
그녀는 양쪽 모두에서 배경 흐림 효과를 켰다. 겉보기에는 아무런 차이가 없었다.
하지만 성능 분석 도구를 켜는 순간, 차이는 극명하게 드러났다.
왼쪽 창의 CPU 사용률은 40%를 넘나들며 위태롭게 움직였다. 노트북의 팬이 서서히 소리를 내기 시작했다.
오른쪽 창의 CPU 사용률은 놀랍게도 5% 미만을 유지하고 있었다. 팬은 미동도 하지 않았다. GPU가 모든 짐을 짊어지고 묵묵히 일을 처리하는 동안, CPU는 한가롭게 다른 작업을 기다리고 있었다.
“성공입니다.”
프리야의 목소리가 살짝 떨렸다. “CPU 부하가 80% 이상 감소했습니다. 이제 우리는 더 복잡한 효과, 예를 들어 동적인 배경 교체 같은 기능도 저사양 기기에서 무리 없이 제공할 수 있게 되었습니다.”
그날 저녁, 드미트리는 자신의 노트북으로 팀 회의에 참여했다. 그는 평소에는 부담스러워 잘 켜지 않던 배경 흐림 효과 버튼을 눌렀다. 아무런 망설임 없이, 효과는 부드럽게 적용되었다. 그는 자신의 귀에 들리던 팬 소음이 사라졌음을 깨달았다.
그는 화면 속 자신의 모습을, 그리고 그 뒤로 흐릿하게 펼쳐진 배경을 가만히 바라보았다.
자신이 쓴 코드가, 자신이 매일 사용하는 제품의 심장부에서 조용히 뛰고 있었다. 세상을 바꾸는 혁명은 때로 이렇게, 내 안에서부터 가장 먼저 시작되는 것인지도 몰랐다. Google Meet은 시작일 뿐이었다. 이제 구글의 다른 제품들, 지도, 어스, 그리고 수많은 데이터 시각화 도구들이 차례를 기다리고 있었다.