2021.07.30

오픈AI, 파이썬 기반 언어 ‘트리톤’ 출시··· “GPU 프로그래밍 지원”

Serdar Yegulalp | InfoWorld
오픈AI(OpenAI)가 7월 28일 머신러닝용 GPU 프로그래밍의 복잡성 없이 GPU 기반 딥러닝 프로젝트를 직접 작성할 수 있는 오픈소스 프로그래밍 언어 ‘트리톤(Triton)’의 첫 번째 버전을 출시했다
 
ⓒGetty Images

‘트리톤 1.0’은 파이썬(버전 3.6 이상)을 기반으로 한다. 오픈AI에 따르면 개발자는 트리톤의 라이브러리를 사용해 파이썬으로 코드를 작성한 다음 GPU에서 실행되도록 JIT 컴파일할 수 있다. 또 새로운 도메인 특정 언어를 개발하느라 시간 낭비할 필요 없이 파이썬 언어 자체를 활용할 수 있다. 

트리톤의 라이브러리는 넘파이(NumPy)를 연상시키는 일련의 기본 요소를 제공한다. 이를테면 다양한 행렬 연산이나 특정 기준에 따라 배열을 축소하는 함수 등이다. 사용자는 이러한 기본 요소를 코드에 결합해 GPU에서 실행되도록 컴파일된 @triton.jit 데코레이터를 추가할 수 있다. 이러한 점에서 트리톤은 넘바(Numba)와 유사하다고 개발팀은 전했다. 넘바는 속도를 위해 숫자 집약적인 파이썬 코드를 머신-네이티브 어셈블리로 JIT 컴파일할 수 있는 프로젝트다. 

트리톤의 간단한 예로는 벡터 추가 커널융합된 소프트맥스 연산 등을 들 수 있다. 개발팀은 후자의 경우 전적으로 GPU 메모리에서 수행할 수 있는 작업을 네이티브 파이토치와 융합된 소프트맥스보다 몇 배 더 빠르게 실행할 수 있다고 밝혔다. 

트리톤은 현재 리눅스에서만 사용할 수 있다. 이제 막 출시된 프로젝트이기 때문에 문서화가 아직 완료되지 않았다. 이를 초기에 채택하는 개발자는 소스와 예제를 자세히 검토해야 할 수 있다. 예를 들면 함수의 JIT 컴파일을 최적화하기 위한 매개변수를 정의하는 데 사용할 수 있는 triton.autotune 함수는 라이브러리의 파이썬 API 섹션에 아직 문서화돼 있지 않다. 하지만 triton.autotune 은 트리톤의 행렬 곱셈 예제에서 사용되고 있다. ciokr@idg.co.kr



 



2021.07.30

오픈AI, 파이썬 기반 언어 ‘트리톤’ 출시··· “GPU 프로그래밍 지원”

Serdar Yegulalp | InfoWorld
오픈AI(OpenAI)가 7월 28일 머신러닝용 GPU 프로그래밍의 복잡성 없이 GPU 기반 딥러닝 프로젝트를 직접 작성할 수 있는 오픈소스 프로그래밍 언어 ‘트리톤(Triton)’의 첫 번째 버전을 출시했다
 
ⓒGetty Images

‘트리톤 1.0’은 파이썬(버전 3.6 이상)을 기반으로 한다. 오픈AI에 따르면 개발자는 트리톤의 라이브러리를 사용해 파이썬으로 코드를 작성한 다음 GPU에서 실행되도록 JIT 컴파일할 수 있다. 또 새로운 도메인 특정 언어를 개발하느라 시간 낭비할 필요 없이 파이썬 언어 자체를 활용할 수 있다. 

트리톤의 라이브러리는 넘파이(NumPy)를 연상시키는 일련의 기본 요소를 제공한다. 이를테면 다양한 행렬 연산이나 특정 기준에 따라 배열을 축소하는 함수 등이다. 사용자는 이러한 기본 요소를 코드에 결합해 GPU에서 실행되도록 컴파일된 @triton.jit 데코레이터를 추가할 수 있다. 이러한 점에서 트리톤은 넘바(Numba)와 유사하다고 개발팀은 전했다. 넘바는 속도를 위해 숫자 집약적인 파이썬 코드를 머신-네이티브 어셈블리로 JIT 컴파일할 수 있는 프로젝트다. 

트리톤의 간단한 예로는 벡터 추가 커널융합된 소프트맥스 연산 등을 들 수 있다. 개발팀은 후자의 경우 전적으로 GPU 메모리에서 수행할 수 있는 작업을 네이티브 파이토치와 융합된 소프트맥스보다 몇 배 더 빠르게 실행할 수 있다고 밝혔다. 

트리톤은 현재 리눅스에서만 사용할 수 있다. 이제 막 출시된 프로젝트이기 때문에 문서화가 아직 완료되지 않았다. 이를 초기에 채택하는 개발자는 소스와 예제를 자세히 검토해야 할 수 있다. 예를 들면 함수의 JIT 컴파일을 최적화하기 위한 매개변수를 정의하는 데 사용할 수 있는 triton.autotune 함수는 라이브러리의 파이썬 API 섹션에 아직 문서화돼 있지 않다. 하지만 triton.autotune 은 트리톤의 행렬 곱셈 예제에서 사용되고 있다. ciokr@idg.co.kr



 

X