콘텐츠로 이동

문제해결

코어 덤프 파일 생성

PyTorch RBLN 실행 중 문제가 발생한 경우, 생성된 코어 덤프 파일을 client_support@rebellions.ai로 전달해 주시기 바랍니다. 코어 덤프 파일을 생성하려면 우선 아래 명령어로 ulimit 제한을 해제해야 합니다.

$ ulimit -c unlimited

ulimit 제한이 정상적으로 해제되었는지 확인하려면 다음 명령어를 실행합니다.

$ ulimit -c
unlimited

이후 문제가 발생한 모델 스트립트를 실행하면 에러가 발생하면서 /var/crash 경로에 코어 덤프 파일이 생성됩니다.

1
2
3
$ ls /var/crash
-rw-r----- 1 rebel1    root   779026 Jul  2 17:50 /var/crash/_usr_bin_python3.10.2029.crash
-rw-r----- 1 rebel2    root 94849351 Jun 25 18:27 /var/crash/_usr_bin_python3.10.2035.crash

CPU에서 실행되는 연산자 로깅

PyTorch RBLN에서 아직 지원하지 않는 PyTorch 연산자나 특정 데이터 타입이 사용될 경우, 프로그램의 중단 없는 실행을 위해 해당 연산은 CPU에서 대신 수행됩니다. 이 기능은 모델의 호환성을 높여주지만, 해당 연산은 NPU의 성능 이점을 활용하지 못하므로 최적화 과정에서 어떤 연산이 CPU에서 실행되는지 파악하는 것이 중요합니다.

기본적으로 PyTorch RBLN의 로그 레벨은 WARNING 으로 설정되어 있어, 디버깅(DEBUG) 메시지는 출력되지 않습니다. 따라서 NPU 성능 최적화를 위해 CPU에서 실행되는 모든 연산자를 확인하려면, 아래와 같이 환경 변수를 DEBUG 로 명시적으로 설정해야 합니다.

사용법:

$ export TORCH_RBLN_LOG_LEVEL=DEBUG

다시 default 값으로 설정하려면 아래와 같이 환경변수를 설정합니다.

$ export TORCH_RBLN_LOG_LEVEL=WARNING

출력 예시:

이 설정을 적용하고 Eager Mode로 모델을 실행하면, Rebellions NPU가 아닌 CPU에서 연산이 수행될 때마다 아래와 같이 해당 연산자의 이름과 (trace가 가능한 경우) 소스 코드 위치가 로그로 출력됩니다.

1
2
3
[TORCH-RBLN][DEBUG] 'aten::pow' ran on CPU instead of RBLN
/transformers/models/llama/modeling_llama.py:73: UserWarning: TRACE
  variance = hidden_states.pow(2).mean(-1, keepdim=True)