Bộ kỹ năng CANNBot cung cấp các thành phần tái sử dụng cho các tác nhân thông minh CANN, giúp tăng tốc quá trình phát triển. Tài liệu này liệt kê toàn bộ API được trích xuất từ asc-devkit/docs/api/.
Cấu trúc thư mục
asc-devkit/docs/api/
├── context/ # Các cấu trúc dữ liệu cốt lõi
├── basic_api/ # API cơ bản (bảng 2-13)
├── adv_api/ # API nâng cao (bảng 14-15)
├── utils/ # Tiện ích chung
├── aicpu_api/ # API dành cho AI CPU
└── c_api/ # API ngôn ngữ C
1. Cấu trúc dữ liệu cốt lõi (context/)
| Lớp / Struct | Mô tả ngắn |
LocalTensor | Quản lý dữ liệu trong bộ nhớ cục bộ của AI Core |
GlobalTensor | Truy cập dữ liệu toàn cục trong Global Memory |
Coordinate | Lưu chỉ số đa chiều của tensor |
Layout | Định nghĩa bố cục bộ nhớ cho tensor |
TensorTrait | Giao diện chung cho các đặc tính tensor |
2. API cơ bản (basic_api/)
Bảng 2 – Thao tác với giá trị vô hướng
| Hàm | Chức năng |
ScalarGetCountOfValue | Đếm số lần xuất hiện của giá trị |
ScalarCountLeadingZero | Đếm số bit 0 ở đầu |
ScalarCast | Chuyển kiểu dữ liệu vô hướng |
Bảng 3 – Tính toán vector
| Nhóm | Các hàm |
| Số học | Add, Sub, Mul, Div, Abs |
| Lượng giác | Sin, Cos, Tan, Asin, Acos, Atan |
| Log-exp | Exp, Log, Sqrt, Rsqrt |
| So sánh | Greater, Less, Equal, NotEqual |
| Logic | And, Or, Not, Xor |
Bảng 4 – Di chuyển dữ liệu
| Hàm | Mô tả | Align |
DataCopy | Sao chép khối dữ liệu | 512 byte |
DataMove | Di chuyển dữ liệu | 32 byte |
Bảng 5 – Quản lý bộ nhớ
| Hàm | Mô tả |
MemAlloc | Cấp phát bộ nhớ |
MemFree | Giải phóng bộ nhớ |
Bảng 6 – Đồng bộ
| Hàm | Mô tả |
Sync | Chờ đồng bộ |
Barrier | Rào chắn đồng bộ |
Bảng 7 – Điều khiển bộ nhớ cache
| Hàm | Mô tả |
Cache | Thao tác flush / invalidate cache |
Bảng 8 – Truy cập biến hệ thống
| Hàm | Mô tả |
GetSysVar | Đọc giá trị biến hệ thống |
Bảng 9 – Thao tác nguyên tử
| Hàm | Mô tả |
AtomicAdd, AtomicSub, AtomicMin, AtomicMax | Cộng / trừ / min / max nguyên tử |
Bảng 10 – Gỡ lỗi
| Hàm | Mô tả |
Debug | In log hoặc dừng kernel |
Bảng 11 – Tiện ích
Các hàm phụ trợ như kiểm tra kích thước tensor, tính toán stride, v.v.
Bảng 12 – Kernel Tiling
| Hàm | Mô tả |
GetTilingKey | Lấy khóa tiling hiện tại |
SetTilingKey | Gán khóa tiling mới |
Bảng 13 – ISASI
Các hàm truy cập cấp phần cứng thấp như đọc thanh ghi đặc biệt.
3. API nâng cao (adv_api/)
Bảng 14 – Toán học nâng cao
| Nhóm | Các hàm |
| Lượng giác & Hyperbolic | Acosh, Asinh, Atanh, Cosh, Sinh, Tanh |
| Phép toán bit | BitwiseAnd, BitwiseNot, BitwiseOr, BitwiseXor |
| Chuyển kiểu | Cast |
| Phép toán hỗn hợp | Addcdiv, Addsub |
Bảng 15 – Lượng tử hóa
| Hàm | Mô tả |
| Các hàm quantize / dequantize | Chuyển đổi float ↔ int8 / int16 |
4. Utils API (utils/)
Chứa các hàm phụ trợ như tính padding, chia tile, kiểm tra overflow.
5. AI CPU API (aicpu_api/)
Tập hợp API chỉ hoạt động trên AI CPU, ví dụ AicpuLaunchKernel, AicpuMemcpyAsync.
6. C API (c_api/)
| Thư mục con | Nội dung |
atomic/ | Phiên bản C của thao tác nguyên tử |
cache_ctrl/ | Điều khiển cache qua C |
cube_compute/ | API Cube dành cho C |
vector_compute/ | API vector dành cho C |
Kinh nghiệm tra cứu
- Thứ tự ưu tiên tra cứu
asc-devkit/docs/api/context/ → Cấu trúc dữ liệu
asc-devkit/docs/api/basic_api/ → API cơ bản
asc-devkit/docs/api/adv_api/ → API nâng cao
- Khi đọc từng file API
- Xem mục Restriction để biết ràng buộc và yêu cầu căn chỉnh.
- Kiểm tra Parameters để xác định kiểu và miền giá trị.
- Đọc Returns để hiểu ý nghĩa giá trị trả về.
- Tham khảo Example để nắm cách dùng.
- Yêu cầu căn chỉnh phổ biến
- Hầu hết: 32 byte
DataCopy: 512 byte
- Một số API đặc biệt: 64 hoặc 128 byte