Ascend/pytorch
Ascend PyTorch adapter (torch_npu). Mirror of https://gitcode.com/Ascend/pytorch
해결하는 문제
TorchNPU는 PyTorch 딥러닝 프레임워크가 화웨이 Ascend AI 프로세서(NPU)에서 직접 실행되도록 합니다. PyTorch의 고수준 API와 Ascend NPU의 특정 하드웨어 아키텍처 사이의 격차를 메우며, 개발자들이 PyTorch 생태계를 버리지 않고도 Ascend의 계산 성능을 활용할 수 있도록 합니다.
작동 방식
PrivateUse1이라는 메커니즘을 통해 PyTorch에 통합되는 어댑터 플러그인으로 작동합니다. 다음과 같은 핵심 기능 모듈을 제공합니다:
- 기본 계산: 주요 AI 워크로드를 지원하기 위해 PyTorch의 내장 및 사용자 정의 API를 구현합니다.
- 분산 학습: FSDP2를 사용하여 대규모 학습을 가속화하고, AllReduce 및 AllGather와 같은 집합 통신 원시 기능 및 DTensor를 지원합니다.
- 그래프 모드: 동적 그래프 캡처, 정적 그래프 최적화, 효율적인 코드 생성의 조합을 통해 학습 및 추론 속도를 향상시킵니다.
- 메모리 관리: 가상 메모리 관리를 통해 분할을 줄이고, 분산 환경에서 스트림 간 메모리 재사용을 최적화합니다.
- 디버깅 및 튜닝: 계산, 메모리, 통신 프로파일링 도구와 통신 이상을 모니터링하는 "WatchDog"를 포함합니다.
대상 사용자
PyTorch를 사용하고 있으며, 모델을 화웨이 Ascend NPU 하드웨어로 마이그레이션하거나 그 위에서 학습하여 성능을 향상시키고자 하는 AI 개발자 및 연구자입니다.
주요 특징
- 무결함 통합: 성숙한 PyTorch 기능을 계승하면서도 NPU 전용 최적화를 추가합니다.
- 분산 확장성: FSDP2 및 DTensor를 위한 전용 지원으로 고성능 병렬 학습을 가능하게 합니다.
- 성능 최적화: NPUGraph를 활용한 그래프 모드를 통해 실행 속도를 가속화합니다.
- 하드웨어 특화 튜닝: 심층적인 프로파일링과 실시간 통신 모니터링을 제공합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트