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

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_werror khi 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):

  1. Biên dịch Ascend Boost Comm:
cd ascend-boost-comm
bash scripts/build.sh testframework
cp -r output/mki ../ascend-transformer-boost/3rdparty/

  1. 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

  1. 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:

  1. 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.
  2. 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

  1. Đị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/
  2. Phát triển tiling: Triển khai logica tiling cho toán tử, nằm ở thư mục tiling/
  3. Triển khai kernel: Viết mã nguồn core cho phép tính toán, nằm ở thư mục op_kernel/
  4. Bọc giao diện: Trong file addcustom_operation.cpp, bọc giao diện cho toán tử
  5. 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:

  1. Xác nhận đã biên dịch mục tiêu example đúng cách
  2. Kiểm tra biến môi trường có hiệu lực không
  3. 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

  1. 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
  2. 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
  3. 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ử
  4. Isolation môi trường: Quản lý phụ thuộc Python bằng virtual environment
  5. 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

Đăng vào ngày 28 tháng 7 lúc 06:43