Nhập môn nhanh vào Ascend Boost Comm: Xây dựng môi trường phát triển cho toán tử trong 10 phút
【Liên kết tải miễn phí】ascend-boost-comm nền tảng công cộng của toán tử, hỗ trợ giao tiếp với các thư viện toán tử được phát triển bởi các tổ chức khác nhau và cung cấp khả năng tái sử dụng M x N toán tử giữa các thư viện tăng tốc khác nhau. Địa chỉ dự án: https://gitcode.com/cann/ascend-boost-comm
Ascend Boost Comm là nền tảng công cộng của Huawei Ascend Ecosystem, định nghĩa một giao diện L0 chuẩn để gọi toán tử, hỗ trợ giao tiếp với các thư viện toán tử được phát triển bởi các tổ chức khác nhau và cung cấp khả năng tái sử dụng M x N toán tử giữa các thư viện tăng tốc khác nhau. Đối với những nhà phát triển muốn bắt đầu làm việc với sự tăng tốc AI trên Ascend, nắm vững quy trình xây dựng và sử dụng môi trường phát triển của Ascend Boost Comm là bước quan trọng nhất.
Xây dựng môi trường phát triển nhanh chóng
Yêu cầu về hệ thống cơ bản
Trước khi bắt đầu, hãy đảm bảo rằng hệ thống của bạn đáp ứng yêu cầu sau:
| Thành phần | Yêu cầu phiên bản | Mô tả |
|---|---|---|
| Python | 3.10.x hoặc 3.11.x | Tương tác với các tập lệnh Python trong quá trình xây dựng |
| CMake | ≥ 3.20 | Công cụ xây dựng |
| GCC/G++ | Đề nghị 7.3.1–11.x | Công cụ biên dịch |
| CANN Toolkit | Bản phát hành cộng đồng mới nhất | Tập hợp phần mềm cho kiến trúc tính toán Ascend |
Lưu ý quan trọng: Nếu bạn đang sử dụng GCC ≥ 12 phiên bản, cần thêm tham số
--no_werrorkhi biên dịch.
Bước 1: Cài đặt gói CANN
CANN (Compute Architecture for Neural Networks) là nền tảng phần mềm cơ sở cho bộ xử lý AI Ascend. Bạn có thể cài đặt nó bằng cách chạy lệnh sau:
# Tải gói CANN Toolkit
# ${VERSION} thay thế bằng phiên bản thực tế, như 8.2.RC1, 8.5.0 v.v.
chmod +x Ascend-cann-toolkit_${VERSION}_linux-$(arch).run
./Ascend-cann-toolkit_${VERSION}_linux-$(arch).run --install
Sau khi cài đặt, cấu hình biến môi trường:
# Giả sử đường dẫn cài đặt là ${HOME}/Ascend
source ${HOME}/Ascend/ascend-toolkit/set_env.sh
Bước 2: Sao chép kho lưu trữ Ascend Boost Comm
Để lấy mã nguồn Ascend Boost Comm rất đơn giản:
# Sao chép kho lưu trữ đến máy tính cá nhân
git clone https://gitcode.com/cann/ascend-boost-comm
cd ascend-boost-comm
Bước 3: Biên dịch Ascend Boost Comm
Ascend Boost Comm cung cấp các script xây dựng tiện lợi, hỗ trợ nhiều mục tiêu xây dựng:
# Biên dịch khung kiểm tra
bash scripts/build.sh testframework
# Biên dịch chương trình ví dụ
bash scripts/build.sh example
# Biên dịch bản phát hành
bash scripts/build.sh release
Nếu bạn đang sử dụng GCC 12 hoặc phiên bản cao hơn, cần thêm tham số --no_werror:
bash scripts/build.sh testframework --no_werror
bash scripts/build.sh example --no_werror
Hai tình huống sử dụng điển hình
Tình huống 1: Sử dụng cùng với thư viện tăng tốc
Đây là cách phổ biến nhất trong môi trường sản xuất, tích hợp Ascend Boost Comm với thư viện tăng tốc (ví dụ: Ascend Transformer Boost):
- Biên dịch Ascend Boost Comm:
cd ascend-boost-comm
bash scripts/build.sh testframework
cp -r output/mki ../ascend-transformer-boost/3rdparty/
- Biên dịch thư viện tăng tốc:
cd ascend-transformer-boost/
source scripts/set_env.sh
bash scripts/build.sh testframework
source output/atb/set_env.sh
- Chạy mô hình hoặc bài kiểm tra toán tử:
# Chạy mô hình hoặc bài kiểm tra toán tử của bạn
Tình huống 2: Phát triển và kiểm tra toán tử đơn lẻ
Đối với những người phát triển chỉ muốn thử nghiệm một toán tử đơn lẻ, Ascend Boost Comm cung cấp cách phát triển nhẹ nhàng hơn:
- Xem xét các toán tử mẫu: Dự án cung cấp mã nguồn đầy đủ cho các toán tử mẫu, nằm ở thư mục
example/ops/, bao gồm hai ví dụ: addcustom và unpad. - Biên dịch và thử nghiệm ví dụ:
cd ascend-boost-comm
bash scripts/build.sh testframework
bash scripts/build.sh example
source output/mki/set_env.sh
# Thử nghiệm toán tử addcustom
python example/tests/pythontest/optest/test_addcustom.py
Hướng dẫn phát triển toán tử tùy chỉnh
Tạo toán tử mới nhanh chóng
Nếu bạn muốn phát triển một toán tử riêng, có thể tham khảo cấu trúc của thư mục example/ops/addcustom/:
example/ops/addcustom/
├── CMakeLists.txt
├── addcustom_kernel.cpp
├── addcustom_operation.cpp
├── op_kernel/
│ └── addcustom.cpp
└── tiling/
├── addcustom_tiling.cpp
├── addcustom_tiling.h
└── tiling_data.h
Các bước phát triển chính
- Định nghĩa các tham số: Định nghĩa các tham số cho toán tử tại thư mục
include/atbops/params/ - Phát triển tiling: Triển khai logica tiling cho toán tử, nằm ở thư mục
tiling/ - Triển khai kernel: Viết mã nguồn core cho phép tính toán, nằm ở thư mục
op_kernel/ - Bọc giao diện: Trong file
addcustom_operation.cpp, bọc giao diện cho toán tử - Viết bài kiểm tra: Trong thư mục
tests/pythontest/optest/, viết bài kiểm tra Python
Biên dịch và kiểm tra
Khi hoàn thành phát triển toán tử, biên dịch lại và kiểm tra:
# Biên dịch lại example
bash scripts/build.sh example
# Thử nghiệm toán tử tùy chỉnh của bạn
python example/tests/pythontest/optest/your_op_test.py
Cấu trúc dự án và các module chính
Ascend Boost Comm thiết kế với một cấu trúc phân lớp rõ ràng:
ascend-boost-comm/
├── cmake/ # Files cấu hình cho quá trình biên dịch và liên kết
├── configs/ # Files cấu hình xây dựng
├── document/ # Tài liệu chi tiết
├── example/ # Mã nguồn ví dụ và triển khai của toán tử
├── scripts/ # Script xây dựng và công cụ
├── src/ # Mã nguồn core
│ ├── include/ # Files header công cộng
│ ├── mki_loader/ # Logic tải toán tử
│ ├── schedule/ # Logic lên lịch cho toán tử
│ └── utils/ # Thư viện công cụ
└── tests/ # Mã nguồn kiểm tra
Các file giao diện chính
- Định nghĩa các tham số cho toán tử: include/atbops/params/
- Logic tải toán tử: src/mki_loader/loader.cpp
- Cơ sở class lên lịch: src/schedule/base/
Các câu hỏi thường gặp và giải pháp
Q1: Lỗi cảnh báo lỗi trong quá trình biên dịch
Vấn đề: Khi sử dụng GCC 12 hoặc phiên bản cao hơn, các thư viện PyTorch thứ ba tạo ra cảnh báo gây lỗi khi biên dịch.
Giải pháp:
# Thêm tham số --no_werror
bash scripts/build.sh testframework --no_werror
Q2: Vấn đề về biến môi trường
Vấn đề: Khi chạy ví dụ, thông báo không tìm thấy thư viện CANN.
Giải pháp:
# Đảm bảo cấu hình đúng biến môi trường CANN
source ${HOME}/Ascend/ascend-toolkit/set_env.sh
source output/mki/set_env.sh
Q3: Kiểm tra thất bại
Vấn đề: Khi chạy bài kiểm tra Python, thông báo không tìm thấy module hoặc toán tử.
Giải pháp:
- Xác nhận đã biên dịch mục tiêu example đúng cách
- Kiểm tra biến môi trường có hiệu lực không
- Kiểm tra tương thích version CANN và torch_npu
Kiểm tra nhanh môi trường
Sau khi hoàn tất tất cả các bước, bạn có thể kiểm tra xem môi trường có hoạt động bình thường không bằng cách chạy các bài kiểm tra ví dụ được tích hợp sẵn:
# Kiểm tra toán tử addcustom
python example/tests/pythontest/optest/test_addcustom.py
# Kiểm tra toán tử unpad
python example/tests/pythontest/optest/test_unpad.py
Nếu tất cả các bài kiểm tra đều thành công, mừng bạn!🎊 Môi trường phát triển Ascend Boost Comm đã được xây dựng thành công.
tài nguyên học sâu
- Hướng dẫn tài liệu: document/đào tạo phát triển toán tử tùy chỉnh.md - hướng dẫn chi tiết về phát triển toán tử
- Quy trình đóng góp: document/quy trình đóng góp.md - quy trình toàn diện để đóng góp vào dự án
- Quy tắc code: document/quy tắc nộp code.md - yêu cầu về nộp code và quy tắc code
Ý kiến khuyên tốt nhất
- Quản lý phiên bản: Luôn sử dụng phiên bản PyTorch và torch_npu tương thích với CANN
- Phát triển theo giai đoạn: Bắt đầu từ các ví dụ của toán tử, dần dần chuyển đổi sang toán tử của riêng bạn
- Kiểm tra hướng dẫn: Viết các bài kiểm tra trước khi triển khai chức năng của toán tử
- Isolation môi trường: Quản lý phụ thuộc Python bằng virtual environment
- Tích hợp liên tục: Sử dụng framework tự động kiểm tra của dự án
Qua hướng dẫn 10 phút nhanh chóng này, bạn đã biết cách xây dựng môi trường phát triển và tiến hành phát triển với Ascend Boost Comm. Nền tảng công cộng mạnh mẽ này sẽ cung cấp nền tảng vững chắc cho phát triển và tái sử dụng khả năng toán tử trên Ascend, giúp bạn phát triển hiệu quả hơn.
Nhớ rằng, thực hành là phương pháp học tốt nhất. Bắt đầu chuyến phiêu lưu đầu tiên của bạn với phát triển toán tử Ascend ngay hôm nay!🚀
【Liên kết tải miễn phí】ascend-boost-comm nền tảng công cộng của toán tử, hỗ trợ giao tiếp với các thư viện toán tử được phát triển bởi các tổ chức khác nhau và cung cấp khả năng tái sử dụng M x N toán tử giữa các thư viện tăng tốc khác nhau. Địa chỉ dự án: https://gitcode.com/cann/ascend-boost-comm