• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    해결됨

실행을 위한 최적 환경

24.02.18 16:45 작성 조회수 192

1

안녕하세요

hello_triton.py가 실행이 되지 않아 질문남깁니다

 

현재

cuda==11.8

pytorch==2.1.2

triton==2.1

의 환경을 사용하고 있습니다

 

 

hello_triton.py 실행 시 아래 오류가 뜹니다

Traceback (most recent call last):

File "/home/furiosa/Desktop/workspace/Triton/practice-triton/hello_triton.py", line 28, in <module>

def hello_triton():

File "/home/furiosa/miniconda3/envs/triton/lib/python3.10/site-packages/triton/runtime/jit.py", line 542, in jit

return decorator(fn)

File "/home/furiosa/miniconda3/envs/triton/lib/python3.10/site-packages/triton/runtime/jit.py", line 534, in decorator

return JITFunction(

File "/home/furiosa/miniconda3/envs/triton/lib/python3.10/site-packages/triton/runtime/jit.py", line 433, in init

self.run = self._make_launcher()

File "/home/furiosa/miniconda3/envs/triton/lib/python3.10/site-packages/triton/runtime/jit.py", line 400, in makelauncher

exec(src, scope)

File "<string>", line 2

def hello_triton(, grid=None, num_warps=4, num_stages=3, extern_libs=None, stream=None, warmup=False, device=None, device_type=None):

^

SyntaxError: invalid syntax

 

 

triton==2.2 가 아니라 2.1을 사용하는 이유는, hello_triton.py 실행 시 아래 오류가 떴기 때문입니다

RuntimeError: Triton Error [CUDA]: device kernel image is invalid

 

 

공식홈페이지에서 제공하는 01-vetor-add.py 같은 경우 실행이 잘됩니다

triton을 사용하기 위한 최적환경은 무엇인지 별 설명이 없었던 것 같은데요

  1. 어떤 cuda/pytorch 환경을 사용해야 오류가 가장 안나고 안정적인가요?

  2. 위 오류는 왜 일어나고 어떻게 해결할까요?

인터넷에도 크게 도움되는 정보는 없어서 부득이 질문 남깁니다ㅠㅠ

답변 1

답변을 작성해보세요.

1

안녕하세요?

 

먼저 강의를 수강해주셔서 감사합니다. 예제가 실행이 되지 않아 속상하시겠어요.

 

지금 발생한 에러는 Triton의 문법 에러입니다. 예전 버전의 Triton은 커널 호출시 값을 반드시 1개는 전달해줘야 했습니다. 최신 버전의 Triton은 이러한 버그가 수정되어서 커널을 호출할 때 값을 전달하지 않아도 됩니다. 저희가 처음 사용하는 hello_triton은 전달 인자가 없어서 Syntax 에러가 발생하게 됩니다.

File "<string>", line 2
def hello_triton(, grid=None, num_warps=4, num_stages=3, extern_libs=None, stream=None, warmup=False, device=None, device_type=None):
^

SyntaxError: invalid syntax

공유해주신 에러 메세지를 살펴보면 코드가 hello_triton(,인 것을 확인할 수 있습니다. 즉 ,가 쓸모없이 추가되었기 때문에 문법 에러가 발생하고 컴파일이 되지 않는 것입니다. 그래서 RuntimeError: Triton Error [CUDA]: device kernel image is invalid같이 커널이 이상하다는 에러가 발생하는 것이라고 생각됩니다.

 

Triton은 최신 데일리 버전을 사용하는게 가장 좋다고 생각합니다. 주의해야할 점은 Torch도 Triton을 사용하기 때문에 Torch를 설치할 때 기존에 설치된 Triton은 삭제되게 됩니다. 그러면 이런 에러가 또 발생할 것입니다. 이것을 방지하기 위해서 Torch를 먼저 설치하고 그 다음 Triton 최신 데일리 버전을 설치하시면 됩니다.

 

감사합니다.

tritonman님의 프로필

tritonman

질문자

2024.02.18

감사합니다!! Triton 2.2를 위해서 다시 세팅해주니까 되는것같습니다 ㅎㅎ

말씀하신 내용이 여기있는 것 같네요 ㅎㅎ