게시글
질문&답변
2024.04.13
혹시 강의에 나오는 예제 코드를 받을 수 있는건가요?
예제가 제공됩니다. https://github.com/daemyung/practice-cmake 에서 다운받으실 수 있습니다.
- 0
- 1
- 44
질문&답변
2024.02.18
코드가 실행되는 순서에 관하여
안녕하세요? 네 맞습니다! 알고 계신 순서로 실행이 됩니다. 그리고 triton.jit 데코레이터의 역할은 해당 함수를 Triton 커널로 정의하는 것입니다. triton.jit 데코레이터를 명시한 함수는 실행전에 컴파일 과정을 거치게 됩니다. 감사합니다.
- 0
- 1
- 108
질문&답변
2024.02.18
실행을 위한 최적 환경
안녕하세요? 먼저 강의를 수강해주셔서 감사합니다. 예제가 실행이 되지 않아 속상하시겠어요. 지금 발생한 에러는 Triton의 문법 에러입니다. 예전 버전의 Triton은 커널 호출시 값을 반드시 1개는 전달해줘야 했습니다. 최신 버전의 Triton은 이러한 버그가 수정되어서 커널을 호출할 때 값을 전달하지 않아도 됩니다. 저희가 처음 사용하는 hello_triton 은 전달 인자가 없어서 Syntax 에러가 발생하게 됩니다. File " ", 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 최신 데일리 버전을 설치하시면 됩니다. 감사합니다.
- 1
- 1
- 193
질문&답변
2024.02.15
강의 계획에 대하여
안녕하세요? Triton 톺아보기는 Triton을 전반적으로 다시 보는 내용을 다루지는 않습니다. Triton에서 추가로 제공하는 기능을 자세히 살펴보는 내용을 다룰 예정입니다. 해당 섹션에서 다룰 첫 주제는 Heuristics입니다. 제가 개인적인 사정으로 시간을 내기 어려워서 강의 제작에 시간을 쏟지 못하고 있습니다. 이점 양해 부탁드리겠습니다. 감사합니다.
- 0
- 1
- 102
질문&답변
2024.02.13
행렬곱 오차 문제
안녕하세요? 아담한 고슴도치님, 먼저 강의를 수강해주셔서 감사합니다. 계산의 결과가 다른 이유는 크게 2가지가 있습니다. 첫째, 다른 데이터 타입을 사용함에 따라 오차가 발생할 수 있습니다. 예제의 경우 행렬을 곱을 tl.dot (x, y, allow_tf32=False)를 호출해서 계산했습니다. 만약 allow_tf32에 True가 설정되어 있거나 allow_tf32가 정의되어 있지 않는 경우에 오차가 발생할 수 있습니다. Triton이 행렬을 빠르게 계산하기 위해 float32를 tf32로 변환한 뒤 Tensor Core를 사용하기 때문입니다. tf32의 경우 float32보다 정밀도가 낮은데, 이 차이로 인해 계산의 오차가 발생할 수 있습니다. 둘째, 계산 순서에 따라 결과가 달라질 수 있습니다. float32는 IEEE 754 표준에 맞춰서 구현되어 있습니다. 지수에 8비트가 사용되고 가수에 23비트가 사용됩니다. 그러므로 float32는 실수를 다 표현할 수 없습니다. 이러한 한계 때문에 계산 순서에 따라 오차가 발생할 수 있습니다. 이러한 현상은 쉽게 확인할 수 있습니다. 크기가 20000인 배열에 실수가 저장되어 있는 경우, 순서대로 실수의 합을 더할때와 역순으로 실수의 합을 더할때의 결과가 다른 것을 확인할 수 있습니다. 이 2가지의 경우 하드웨어의 한계로 발생하는 오차입니다. 개인적으로 저는 이러한 오차를 오차라고 생각하지 않습니다. 마지막으로 예제 코드의 경우 경계 검사가 되어있지 않습니다. 텐서의 크기와 블록의 크기가 정확히 나누어 떨어지지 않는다면 쓰레기 값이 임시 텐서에 로드되게 되고 이것이 잘못된 결과를 만들 수 있습니다. 요즘 제가 바빠서 답변이 늦었는데 죄송합니다. 궁금하신점 있으시면 계속 물어봐주세요. 감사합니다!
- 1
- 2
- 140
질문&답변
2024.01.07
실습 코드
안녕하세요? 실습 코드는 https://github.com/daemyung/practice-triton 에서 다운받을 수 있습니다. 감사합니다.
- 0
- 1
- 157
질문&답변
2023.11.18
CMake 배포 강의가 CMake 설치 강의랑 똑같아요
안녕하세요? 이전에 다른 영상에 오류를 수정하면서 업로드가 잘못된 것 같습니다. 올바른 영상을 올렸으니 확인 부탁드려요. 불편을 드려서 죄송합니다. 감사합니다.
- 0
- 1
- 239
질문&답변
2023.10.27
Xcode 빌드시스템 에서 빌드가 잘 되지 않는 문제가 있습니다.
안녕하세요? 예제가 실행되지 않아 어려움을 겪고 계시는군요. 저와 함께 하나씩 풀어가시죠. XCode Command Line Tools가 설치되어 있으시니 사소한 문제로 XCode 빌드 시스템 파일들이 생성되지 않는다고 생각됩니다. 만약 XCode Command Line Tools를 설치하지 않으셨다면 xcode-select --install 로 설치하신 뒤 다시 실행해보시길 바라겠습니다. 제 개발환경이 HongSangJoon님과 동일한 개발환경이라고 생각됩니다. 제가 실행했을때는 정상적으로 실행이 됩니다. (사진) 맨 처음 문제는 CMake가 컴파일러를 못찾고 있습니다. 이는 CMakeCache.txt가 폴더에 남아있어서 발생할 수 있는 문제이니 폴더를 삭제하고 다시 CMake 명령어를 사용해보셨으면 합니다. 컴파일러를 찾지 못하는 문제를 해결하기 위해 Clang 컴파일러 경로를 직접 입력하셨습니다. Check for working C compiler: /usr/bin/clang - broken The C compiler "/usr/bin/clang" is not able to compile a simple test program. 위 에러 메세지로 유추해 보았을때 컴파일러에 문제가 있어보입니다. CMake는 간단한 코드로 컴파일을 해보고 컴파일이 성공한 경우에 컴파일러를 찾았다고 합니다. 올바른 Clang이 설치되어 있는지 확인 부탁드립니다. ❯ clang --version Apple clang version 14.0.3 (clang-1403.0.22.14.1) Target: arm64-apple-darwin22.2.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin 제대로 설치되어 있다면 test.c 를 만드시고 아래처럼 간단한 코드를 작성하십시요. #include int main() { printf("Hello C"); return 0; } 그리고 clang test.c 를 입력해서 컴파일이 제대로 되는지 확인 부탁드립니다. 지금 문제를 근본적으로 해결하기 위해서는 컴파일러의 경로를 강제로 입력하지 말고 CMake가 컴파일러의 경로를 자동으로 찾도록 수정해야합니다. 알려드린 방법을 시도해보시고 안되시면 로그 공유 부탁드려요.
- 0
- 1
- 402
질문&답변
2023.09.23
CMake 심화 - CMake 설치 실습 관련 문제
편집 과정에서 해당 커맨드가 삭제된 것 같습니다. 강의 노트에 해당 명령어 추가하도록 하겠습니다. 제보해주셔서 감사합니다.
- 0
- 3
- 355
질문&답변
2023.09.23
CMake 심화 - CMake 설치 실습 관련 문제
안녕하세요? 인스톨을 하기 위해서는 타겟을 install 로 지정해주셔야 합니다. 아래와 같이 실행해보시겠어요? cmake --build . --target install 해결이 되셨다면 해결 여부를 해결로 바꿔주세요. 감사합니다.
- 0
- 3
- 355