엔비디아 CUDA는 AI 개발자들에게 필수적인 도구로 자리 잡았습니다. CUDA는 GPU를 이용한 AI 모델 연산을 쉽게 해주는 GPGPU API로, 개발 접근성과 시장 다양성이 뛰어납니다. CUDA의 편리함과 안정성 덕분에 다른 GPGPU API들이 경쟁하기 어려운 상황입니다.
엔비디아 CUDA의 강력한 독점은 AI 개발자와 기업들에게 큰 영향을 미치고 있으며, 다른 플랫폼들이 이를 대체하기는 쉽지 않은 현실입니다. CUDA의 대안으로 여러 GPGPU API들이 있지만, 대부분의 개발자들이 CUDA를 선호하는 이유는 분명합니다.
개발 편의성과 효율성
CUDA는 설치와 사용이 간편해 AI 엔지니어들이 빠르게 접근할 수 있습니다. 이는 개발 속도를 높이고 효율적인 모델 개발을 가능하게 합니다.
시장 다양성과 호환성
CUDA를 이용하면 다양한 시장에 쉽게 진출할 수 있으며, 이미 구축된 시스템과의 높은 호환성으로 기업들에게도 매력적입니다.
높은 안정성과 신뢰성
CUDA의 안정성은 AI 모델의 정확성과 성능을 보장해주며, 이는 대규모 프로젝트에서도 중요한 요소입니다. 이러한 이유로 많은 AI 연구자들과 기업들이 CUDA를 선호합니다.
대안 GPGPU API들의 한계
AMD의 ROCm, 구글의 TPU, 애플의 Metal 등 다양한 대안 GPGPU API들이 있지만, CUDA의 성능과 호환성을 넘어서지 못하고 있습니다. 이는 CUDA의 시장 독점 상태를 더욱 강화시키는 요인 중 하나입니다.
미래 전망
CUDA의 독점이 지속될지, 아니면 다른 플랫폼들이 새로운 도전을 할지 지켜보는 것도 흥미롭습니다. CUDA는 당분간 AI 개발 생태계에서 독보적인 위치를 유지할 것으로 보이며, AI 개발자들과 기업들은 이를 통해 더욱 효율적인 개발 환경을 구축할 수 있을 것입니다.
1. 엔비디아 CUDA의 생태계 독점 정도는 상상 이상으로 어마어마하다.
2. CUDA를 벗어난다는 건 곧 문명에서 벗어나 숲속으로 들어가 자연인이 되는 것과 같다고 볼 수 있다.
3. 다른 플랫폼이 CUDA(+관련 툴)만큼의 편의성을 갖춘 채 CUDA를 대체한다는 건 현 시점에선 상상조차 되지 않는다.
===================== 본문 =====================
AI개발자는 크게 두 종류로 나뉨
1. 모델 연구를 위주로 하는 AI리서처
2. 실제 구현 및 프로덕트화를 하는 AI엔지니어
0. CUDA란?
엔비디아 GPU에만 호환되는 GPGPU API. 또는 플랫폼이라고도 부름.
GPGPU의 역사같은거 따지고 올라가면 너무 길어지니 짧게 요약하면
"AI 모델의 연산을 GPU로 실행할 수 있도록 도와주는 도구" 정도가 될듯.
1. 쉬운 개발 접근성 + 시장 다양성
엔비디아의 CUDA가 개발자 생태계를 독점하고 있다는 얘기는 많이 들어봤지? 그 말 그대로임. AI엔지니어가 CUDA를 벗어나는 건 문명에서 벗어나 숲속에 들어가 자연인이 되는 것과 같다고 볼 수 있음.
컴 처음 사면 가장 먼저 하는게 무지성 CUDA설치임. 몇 년 전에는 설치하면서 신경써야할 게 좀 있어서 귀찮은 작업이었지만, 요즘은 거의 무지성 딸깍딸깍으로 되는 수준으로 편의성이 강화됨.
사실 여기서부터 이미 게임 끝남
CUDA 쓰다가 다른 어줍잖은 GPGPU API 써보면 일단 개발환경 구축만으로 몇날며칠 그냥 날아가고... 어찌저찌 우여곡절 끝에 PoC 프로덕트가 나오더라도, 배포 가능한 환경이 굉장히 한정적이기 때문에 그에 따라 진출할 수 있는 시장의 다양성도 굉장히 떨어짐. 그 지랄할 시간에 그냥 CUDA쓰면 10배 이상의 시간과 노력을 절약할 수 있다....
이는 회사 입장에서도 마찬가지인데, 엔비디아 GPU 비싸다고 다른 걸로 갈아타려 하면 절약한 GPU구매비용보다, 몇 배로 늘어난 인건비가 훨씬 크기 때문에 엄두도 못냄. 그리고 실제 서비스 환경에서의 안정성 또한 생각해야하기 때문에 이미 기구축 되어있는 엔비디아 플랫폼을 버리고 검증되지 않은 타사 플랫폼으로 갈아타는건 어마어마한 모험이 될 수 밖에 없음.
좀 다른 얘긴데, 이렇게 기존에 구축된 시스템을 몇년 몇십년 유지하는건 개발 시장 종특임. 미국의 금융권에선 아직도 1959년에 나온 코볼(COBOL)이라는 언어로 구축된 시스템을 그대로 사용중임. 또한 올해 백악관에서 소프트웨어 개발자들 대상으로 "태생적으로 보안 취약성을 지닌 프로그래밍 언어인 C/C++의 사용을 지양하고 memory-safe한 언어(ex. Rust)를 사용하라"는 권고를 했는데, 사실 이런 취약성은 아주 옛날부터 이미 알려져있었고 이를 해결하기 위한 다른 프로그래밍 언어들도 여러번 개발됐었음. 하지만 오래된 분야일 수록 C/C++ 레거시가 워낙 방대하다보니 이걸 버리고 다른 언어로 갈아탄다는 것은 상상조차 할 수 없는 일이라 아직까지도 세대교체는 지지부진함. 굳이 백악관에서 저런 소리를 한 이유도 정말로 기존꺼 갈아치우라는 의도보다는 최소한 새로 시작하는 프로젝트는 다른 언어를 사용하게끔 유도하고자 하는 면이 큼.
결국 하고 싶은 얘기가 뭐냐면, CUDA의 독점 상태가 지속될수록 개발자와 플랫폼 간의 유착이 점점 심해져서 헤어나올 수 없는 상태가 될 수 있다는 것임.
물론 COBOL이나 C/C++은 단순히 프로그래밍 언어고 CUDA는 엔비디아 GPU를 비싼돈 주고 사야 쓸 수 있는 플랫폼이란 차이점이 있어서 일대일로 비교하기는 힘들지만 그 뉘앙스를 전달하기 위해 다소 과장된 비유를 한 점 양해 바람...
여담으로 CUDA를 기반으로 한 cuDNN, cuFTT, TensorRT, Deepstream, Triton 등등 여러가지 라이브러리 및 툴들이 있는데, 얘네들 모두가 개발기간을 줄여주거나 추론 성능을 크게 늘려주는 역할을 함. 이런 툴들로 소위 말하는 "딸깍"이 익숙해져있는 개발자들이 황량한 다른 생태계로 이동한다는건 정말 쉽지 않은 일임. "딸깍" 하고 노는게 아니라 그 시간에 다른 일을 해야하거든... ㅋㅋㅋ
2. 정녕 CUDA의 대항마는 없는건가?
CUDA외에도 GPGPU API들이 있긴 함.
애플 - OpenCL
옛날에 반짝했다가 지금은 쓰레기통 들어갔다고 요약할 수 있음.
특정한 하드웨어에 종속되지 않은, 단순한 규격(쉽게 말해 설명서)이라 보면 됨.
애플은 개발 초기에만 관여했고 주로 "크로노스 그룹"이라고 해서 구글, 마소, 엔비디아, 애플, AMD, 삼성, LG등 이름 좀 있다 싶은 IT/반도체 기업들 대부분이 속한 컨소시엄에서 관리중임.
제조사들이 규격만 맞춰서 "잘" 구현하면 쓸 수 있기 때문에 벤더 종속적이지 않아서 CUDA의 대항마다 뭐다 얘기도 예에엣날에 나왔었음.
하지만 그 "잘"이 안되는 제조사들이 많기 때문에 일일히 써보면서 검증해야함
심지어 몇년전인가 명목상 개발사인 애플마저 iOS/macOS 에서 OpenCL 지원을 중단함
애플 - Metal
iOS/macOS에 내장되는 GPU 전용 API임. 쉽게 말해 애플 기기 전용
애플은 생태계가 워낙 폐쇄적이라 애초에 CUDA가 비집고 들어갈 공간이 없고, 지금도 당연히 현재진행형임. (맥북에 엔비디아 GPU를 박아넣을 수 있는가를 생각해보면 쉬움)
Vulkan같은 거에 비하면 훨씬 쉽게 쓸 수 있어서 꽤 괜찮다고 들었는데, iOS/macOS 개발은 거의 해본 적이 없어서 잘 모름..
구글 - TPU
이건 GPU가 아닌 NPU라고 해서 AI에만 모든걸 몰빵한 하드웨어라 보면 됨.
구글의 내부 R&D부서는 엔비디아에 대한 의존 없이 이 TPU를 사용하는 걸로 알고 있음. (일반 개발자들 대상으로 한 클라우드 서비스에는 아직 엔비디아 GPU 쓰고 있다고 함. TPU로는 단가가 안나오는건지.. 확장성이 부족한건지..)
근데 어디까지나 내부용이라 TPU클라우드(베타) 서비스를 제외하면 일반적인 개발자들이 접근 가능한 하드웨어는 저전력의 임베디드용 모듈 뿐인데다 그거 장착한 캐리어 보드 생산하는 서드파티 업체도 거의 없음. 그냥 생태계랄게 아예 없는 수준임.
AMD - ROCm
CUDA를 제외하고 일반 개발자 생태계에 그나마 나와있는게 이거임.
하지만 데탑용 GPU로서의 Radeon은 나름대로의 점유율이 있지만 GPGPU API로서의 ROCm은 아직 갓난아기나 마찬가지임.
개발 문서나 지원이 CUDA와 비교하면 아예 없는 수준이고, 뭔가 오류가 터졌을때 어디다 물어보고 싶어도 물어볼 놈이 없으니 혼자 다 해야함...
ChatGPT 뜨고 나서부터 AMD가 기존에 거의 방치하던 ROCm을 다시 손대기 시작했다느니 뭐니 하는데... 그 개선된 ROCm은 아직 써보지 않았지만, 평을 들어보면 여전히 폐기물이라고 함...
마소 - DirectML
이건 출시 자체가 2019년이라 모르고 있다가 최근에 알게 됐음
DirectX를 지원하기만 하면 AMD건 인텔이건 엔비디아건 퀄컴이건 다 쓸 수 있다고 함
사용후기도 직접 들어본건 없고 인터넷으로 찾아봤는데.. 공통적으로 속도가 좀 느리다는 말들이 많음. 아마 DirectX를 한번 거쳐서 동작하기 때문이 아닌가 싶음...
하나 알아둬야 할 건 현재 모든 대기업들은 CUDA가 장악한 일반 AI시장 파이를 먹는건 둘째치고, 일단 본인들부터 CUDA에서 벗어나는 게 목표라는 거임.
일반 개발자 생태계를 위한 범용성이고 나발이고 일단 최소한 본인들 AI연구에라도 쓸 수 있는 AI칩을 만들어야 하는 셈임. 구글은 이미 꽤 높은 수준으로 달성한 것 같고... 애플 마소 등등은 아직 챌린지중인 걸로 알고있음.
사람들이 엔비디아 독점이 5년은 가네 10년은 가네 얘기하는건 일반 AI시장을 두고 얘기하는 거고, 대기업들의 자사 R&D용 AI칩의 개발은 더 빠른 시일 내에 될 가능성도 있으니 투자 판단 시 주의가 필요함.
엔비디아가 2006년 이전부터 근 20년간 준비해온건 맞지만, 기술력이란건 레버리지마냥 복리로 올라가는거라 생각보다 이른 시기(5년 내)에 격동이 일어날 수도 있음. (물론 그 "격동"이란건 독점 상태가 어느정도 해소된다는 의미인거지, "엔비디아가 망한다"는 의미는 절대 아님) 엔비디아가 작년쯤인가 부터 바이오 산업도 넘실대는거 같던데, 이게 어떤 식으로 이어질지 흥미롭게 지켜보는 중...
댓글