
최근, 오픈AI(OpenAI)가 인공지능(AI)을 적용한 자동화 코드 작성 툴인 코파일럿(Copilot)을 공개하면서 화제가 됐다. 그리고, 이번에는 프로그래밍 언어를 새로 개발했다.
7월 31일(현지 시각), 해외 온라인 뉴스 웹사이트 마켓리서치텔캐스트의 보도에 따르면, 오픈AI가 머신러닝 애플리케이션을 위해 특수 제작된 프로그래밍 언어 '트리톤(Triton)'을 공개했다. 1.0버전으로 배포된 트리톤은 파이썬을 기반으로 탄생해, GPU 구조 작업에 최적화됐다. 글로벌 칩 제조사 엔비디아가 단독으로 사용한다.
오픈AI 연구팀은 트리톤을 GPU에 최적화하기 위해 코드를 GPU 구조에 맞추어 제작해야 한다는 사실에 주목했다. 또, GPU 구조에는 특수 코드 변경 작업도 적용해야 한다.
GPU에 맞춤 제작하기 위해 필요하기 위해 메모리 통합으로 D램(DRAM)에서 이루어지는 메모리 이관이 대규모 처리 과정과 결합해야 한다. 또, S램(SRAM)에 저장된 데이터에 대해 공유 메모리 관리 최적화도 중요하다. 마지막으로 계산 작업은 개별 스트리밍 멀티프로세서와 스트리밍 멀티프로세서 전반에 걸쳐 분할하고 예정대로 처리하도록 해야 한다.
오픈AI 연구팀은 직접 관련 컴파일러 최적화 작업을 시행했다. 그리고, 트리톤 컴파일러는 스트리밍 멀티 프로세서 내의 메모리 통합과 공유 메모리 관리, 스케줄링 등을 자동으로 처리한다.
GPU 최적화 관련 사항을 살펴보았다면, 이제는 프로그래밍 언어의 핵심 요소 중 하나인 구문을 살펴볼 때이다. 앞서 언급한 바와 같이 트리톤은 파이썬을 기반으로 한다. 특수 GPU 기능을 구축할 때, JTT 컴파일러를 활용해 수많은 코드를 머신 코드로 변환하는 넘바(Numba) 소프트웨어 패키지와 비슷한 것으로 보인다.
트리톤은 넘바와 마찬가지로 파이썬 기능을 활용한다. 각각 다른 program_ids와 함께 실행하는 여러 종류의 커널을 정의하는 데 사용할 수 있다.
그리고, 트리톤은 성능상의 이유로 모듈러 시스템 구조에 의존하며, 내부 중간코드(IR)를 다루는 '트리톤-IR'이라는 코드에 초점을 맞춘다. 다차원적 가치 블록이 IR의 핵심이 된다. 트리톤 컴파일러 백엔드는 LLVM 컴파일러 구조 준비와 병렬 스레드 실행(PTX)을 위해 중간 코드 간소화와 최적화 과정을 거친다.
현재, 엔비디아의 GPU 제품에만 적용되며, 엔비디아 CPU 혹은 경쟁사 GPU에 활용할 컴파일 계획은 없다.
[ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]