Mở khóa sức mạnh của HiSilicon ai socs bằng các công cụ mở

Bạn có thể nhanh chóng phát triển cho HiSilicon ai socs. Bạn sẽ sử dụng các công cụ tiêu chuẩn mở như SDK Ascend cann. SDK mạnh mẽ này

Mở khóa

Bạn có thể nhanh chóng phát triển cho HiSilicon ai socs. Bạn sẽ sử dụng các công cụ tiêu chuẩn mở như SDK Ascend cann. SDK mạnh mẽ này hỗ trợ các dự án học máy của bạn. Đường dẫn tạo ứng dụng ai của bạn rất đơn giản.

  1. Thiết lập môi trường phát triển của bạn trên bảng.
  2. Chuyển đổi mô hình học máy từ khung mở.
  3. Triển khai và chạy mô hình ai của bạn trên bảng cạnh.

Hướng dẫn này cung cấp cho bạn một cách thực hành để chạy ứng dụng ai đầu tiên của bạn. Bạn có thể lấy một mô hình tiêu chuẩn và xem nó hoạt động trên bo mạch của bạn để tính toán Edge. Hệ sinh thái mang lại hiệu suất tuyệt vời cho các nhiệm vụ học tập và tính toán tiên tiến của bạn.

Đạt hiệu suất ai hàng đầu🚀

Khuôn khổ Ascend cann cho phép hiệu quả ấn tượng cho việc học sâu ở rìa.

Hệ métGiá Trị (mỗi npu)
Thông lượng nạp trước6,688 Token/S
Thông lượng giải mã1,943 Token/S
Giải mã bền vững538 Token/S

Hành trình học tập này chuyển các khái niệm ai của bạn sang tính toán cạnh thế giới thực.

Mang theo chìa khóa

  • Bạn có thể xây dựng ứng dụng ai trên HiSiliconAi socsSử dụng các công cụ mở như SDK Ascend cann.
  • SDK Ascend cann có hai công cụ chính: ATC chuyển đổi các mô hình và ascendcl chạy chúng trên phần cứng ai.
  • Bạn có thể sử dụng các khung ai phổ biến như tensorflow và pytorch. Chuyển đổi mô hình của bạn sang onnx để có kết quả tốt nhất.
  • Thiết lập môi trường phát triển của bạn bằng cách cài đặt bộ công cụ cann. Sau đó, xác minh cài đặt để đảm bảo nó hoạt động.
  • Để chạy ứng dụng ai đầu tiên của bạn, hãy chuyển đổi một mô hình như ResNet-50 với ATC. Sau đó, sử dụng ascendcl để triển khai và chạy nó trên bảng của bạn.

Khám phá hệ sinh thái ai

Khám phá

Bạn sẽ sử dụng SDK Ascend cann (Compute Architecture For neural Networks) làm cốt lõi của hệ sinh thái ai hiện đại. SDK mạnh mẽ này cung cấp cho bạn các công cụ cho các dự án học máy của bạn. Hệ sinh thái hỗ trợ hành trình của bạn từ phát triển mô hình đến triển khai trên các thiết bị cạnh. Hệ sinh thái ai này được thiết kế để tính toán hiệu suất cao.

Công cụ cho HiSilicon ai socs

Công cụ chính của bạn là SDK Ascend cann. Nó thay thế Huawei hiai ddk cũ hơn. SDK này chứa hai thành phần chính cho các tác vụ trí tuệ nhân tạo của bạn.

  1. Máy biên dịch lên tensor (ATC):Bạn sử dụng công cụ này để chuyển đổi các mô hình mạng thần kinh của bạn. Nó lấy các mô hình từ các khung ai mở và chuẩn bị cho Hội Đồng Quản trị. ATC cũng tối ưu hóa mô hình của bạn để có hiệu suất tốt hơn và thấp hơnBộ nhớSử dụng bằng cách hỗ trợMáy tính nửa chính xác. Nó cải thiện mô hình của bạn với các tính năng như:

    • Tối ưu hóa lịch trình cho người vận hành
    • Tối ưu hóa bộ nhớ
    • Xử lý trước tầm nhìn kỹ thuật số (dvpp) để xử lý hình ảnh nhanh hơn
  2. Ngôn ngữ tính toán Ascend (ascendcl):Bạn sử dụng API này để chạy Model của mình trên phần cứng ai.Thư viện Python, pyacl, cho phép bạn viết mã để quản lý bảng, điều khiển bộ nhớ và thực hiện mô hình học máy của bạn. Đây là cách ứng dụng của bạn giao tiếp với HiSilicon ai socs.

Tích hợp khung

Bạn có thể bắt đầu với khung học sâu mà bạn đã biết. Nền tảng Ascend hỗ trợ các khung ai phổ biến, giúp bạn chuyển đổi sang tính toán cạnh trở nên mượt mà. Bạn có thể dễ dàng tích hợp công việc học máy hiện tại của mình.

Mẹo:Để có kết quả tốt nhất, bạn nên xuất mẫu sang định dạng onnx. Bạn có thể sử dụng các công cụ nhưTf2onnxĐể chuyển đổi các mô hình tensorflow của bạn trước khi sử dụng ATC.

SDK cann duy trì khả năng tương thích với các phiên bản khung cụ thể để đảm bảo sự ổn định. Ví dụ: Dưới đây là một số phiên bản được hỗ trợ choPytorch:

KhungPhiên bảnPhiên bản cann
Pytorch2.1.07.0.1
Pytorch1.11.07.0.1

Dự Án cộng đồng

Ngoài SDK chính thức, Một cộng đồng mạnh được xây dựngCông cụ nguồn mở. Dự Án openipc/openhisilicon là một ví dụ tuyệt vời. Đây là SDK cộng đồng dành cho phần sụn và phát triển mức thấp trên nhiều hệ thống khác nhau. Dự án này cung cấp cho bạn nhiều quyền kiểm soát đối với Hội Đồng Quản trị của bạn với giấy phép MIT/GPL của nó. Nó hỗ trợ một loạt các Chip xử lý thị lực, bao gồm:

Nỗ lực cộng đồng này cung cấp một con đường khác cho việc học và phát triển trí tuệ nhân tạo của bạn trên các thiết bị cạnh.

Thiết lập môi trường

Bạn đã sẵn sàng để chuẩn bị môi trường phát triển của mình. Thiết lập này là nền tảng cho tất cả các dự án ai trong tương lai của bạn trên bảng. Bạn sẽ cài đặt phần mềm cần thiết và xác nhận rằng phần cứng của bạn đã sẵn sàng cho các nhiệm vụ học máy.

Phần cứng và phần mềm

Phần cứng chính của bạn là bảng phát triển HiSilicon ai socs. Bạn cũng cần một máy tính chủ chạy một phân phối Linux tương thích, như Ubuntu. Trước khi bắt đầu, hãy đảm bảo bảng của bạn được bật và kết nối với mạng của bạn. Thiết lập thích hợp các hệ thống này ngăn ngừa các vấn đề phổ biến sau này.

Xem các lỗi thiết lập phổ biến này⚠️

Trong quá trình thiết lập thiết bị Edge ban đầu, bạn có thể gặp phải lỗi kịch bản hoặc trình điều khiển. Chú ý đến các đường dẫn tệp và quyền có thể giúp bạn tránh chúng.

  • SH: không thể mở './pinmux.sh': không có tập tin hoặc thư mục như vậy
  • SH: không thể mở 'clkcfg.sh': không có tập tin hoặc thư mục như vậy
  • Insmod: không thể chèn 'hi _ osal.ko': không có tập tin hoặc thư mục như vậy
  • Không có kết nối mạng trên hi3516av200

Cài Đặt Bộ công cụ cann

Bạn sẽ cài đặt SDK Ascend cann để cho phép xử lý ai trên bảng của bạn. Quá trình này liên quan đến việc tải về các gói chính xác và chạy trình cài đặt.

  1. Gói tải xuống: Nhận các gói Driver, Firmware và toolkit từ Cộng Đồng Ascend chính thức.
  2. Tạo người dùng: Thiết lập nhóm người dùng chuyên dụng để chạy ứng dụng Ascend.
    Sudo groupadd-g hwhiaiuser
    Sudo useradd-g hwhiaiuser-d/Home/hwhiaiuser-m hwhiaiuser
    
  3. Cài đặt trình điều khiển & phần sụn: Cấp quyền thực hiện cho các tập tin và chạy trình cài đặt.
    Sudo chmod x *. Run
    Sudo. /Ascend-hdk-xxx-npu-Driver _ *. Run -- đầy đủ
    Sudo. /Ascend-hdk-xxx-npu-firmware _ *. Run -- đầy đủ
    
  4. Bộ công cụ cài đặt: Cuối cùng, chạy trình cài đặt bộ công cụ để hoàn tất thiết lập SDK.
    . /Ascend-cann-toolkit _ *. Chạy -- cài đặt
    

Sau khi cài đặt SDK, bạn có thể cần thiết lập các biến môi trường để cấu hình nền tảng máy tính cạnh của mình để xây dựng các ứng dụng ai.

BiếnMô tả
Ascend_home_pathĐặt đường dẫn về nhà cho Bộ công cụ cann.
Phiên bản soc_Chỉ định phiên bản chip Ascend của bạn.
Max_jobsXác định Số lượng lõi CPU để biên soạn.

Xác minh việc lắp đặt

Sau khi cài đặt, bạn nên xác minh rằng mọi thứ đều hoạt động. Cài đặt thành công sẽ hiển thị tin nhắn nhưXXX cài đặt thành công. Bạn cũng có thể chạy lệnh để kiểm tra trạng thái của phần cứng ai. Bước này xác nhận rằng môi trường học máy của bạn đã sẵn sàng cho tính toán cạnh và học sâu.

Kiểm tra trạng thái npu

Bạn có thể chạyNpu-smi infoRa lệnh để có được thông tin chi tiết về npu của bạn. Đầu ra thành công cho thấy chip làOkVà sẵn sàng cho xử lý ai và tính toán.

$ Npu-smi info
+ ----------------------------------------------------------------- +
| Npu-smi 23.0.1 phiên bản: 23.0.1 |
+ --------------------------- + --------------- + --------------------- +
| Tên npu | sức khỏe | Công suất (W) nhiệt độ (C) |
| Chip | bus-ID | aicore (%) |
+ =========================== + =============== + +
| 4 910b3 | OK | 93.6 40 |
| 0 | 0000:01:00.0 | 0 |
+ =========================== + =============== + +

Điều này xác nhận hành trình học tập của bạn vào ai trên rìa có thể bắt đầu.

Ứng dụng ai đầu tiên của bạn

Của bạn

Bạn đã sẵn sàng để xây dựng ứng dụng ai đầu tiên của bạn. Quá trình này lấy một mô hình học máy tiêu chuẩn và chạy nó trên bảng phát triển của bạn. Bạn sẽ thấy phần mềm và phần cứng hoạt động cùng nhau mạnh mẽ như thế nàoMáy tính cạnh. Dự án này sẽ tập trung vào một nhiệm vụ tầm nhìn máy tính đơn giản.

Chuẩn bị một mô hình mở

Bước đầu tiên của bạn là chọn một mô hình được đào tạo trước. Bạn có thể tìm thấy nhiều mô hình trong các thư viện mã nguồn mở như vườn thú mô hình onnx. Đối với hướng dẫn này, bạn sẽ sử dụng ResNet-50, một mẫu phổ biến để nhận dạng hình ảnh. Nó cung cấp một điểm khởi đầu tuyệt vời cho hành trình học tập của bạn.

Mô hình của bạn cần dữ liệu đầu vào ở định dạng cụ thể. ResNet-50 mong đợi hình ảnh có kích thước nhất định và được xử lý trước. Trước khi đưa hình ảnh vào mạng thần kinh, bạn phải thay đổi kích thước nó thành hình dạng đầu vào của người mẫu224x224 pixel với 3 kênh màu. Bạn cũng cần phảiBình thường hóa các giá trị pixel. Việc chuẩn bị này đảm bảo Mô hình có thể hiểu chính xác dữ liệu hình ảnh.

Bạn có thể dễ dàng tải một mô hình ResNet-50 được đào tạo trước bằng cách sử dụng một khung học tập sâu như tensorflow. Mã sau đây cho biết cách chuẩn bị mô hình cho nhiệm vụ thị giác máy tính của bạn.

Nhập tensorflow như TF

Img_height = 224
Img_width = 224

Pretrained_model = TF. keras.applications. resnet50 (include_top = True,
Input_shape =(img_height, img_width, 3),
Trọng lượng = 'imagenet')

Mặc dù ResNet-50 là một lựa chọn tốt, hệ sinh thái ai hỗ trợ các mô hình khác cho các nhiệm vụ nhận diện và tầm nhìn khác nhau. Bạn cũng có thể bắt đầu với những lựa chọn thay thế sau:

  • Mobilenet: Một mô hình hiệu quả được thiết kế cho thiết bị di động và thiết bị thị giác nhúng.
  • Squeezenet: Một mô hình nhỏ mang lại độ chính xác tốt với ít tài nguyên hơn.
  • Vgg: Một mô hình mạnh mẽ để thử thách phân loại hình ảnh phức tạp hơn.

Bạn cũng có thể khám phá các mô hình cho các lĩnh vực trí tuệ nhân tạo khác, chẳng hạn như nhận dạng giọng nói, để mở rộng kỹ năng của bạn.

Chuyển đổi mô hình với ATC

Của bạnHiSilicon ai socsKhông thể chạy trực tiếp mô hình tensorflow hoặc onnx. Trước tiên, bạn phải chuyển đổi nó thành định dạng bảng hiểu. Bạn sẽ sử dụng công cụ Ascend tensor compiler (ATC) từ SDK cho chuyển đổi này. Công cụ này tối ưu hóa mô hình của bạn cho phần cứng ai, cho phép tăng tốc suy luận ai hiệu suất cao.

Lệnh ATC lấy mẫu ban đầu của bạn và xuất ra mẫu ngoại tuyến (. Om) Tập tin. Tập tin này đã sẵn sàng để triển khai trên các hệ thống Edge của bạn.

Chuyển đổi mô hình của bạn với lệnh này⚙️

Chạy lệnh sau trong thiết bị đầu cuối của bạn. Hãy chắc chắn rằng bạn đã xuất Mẫu ResNet-50 sang định dạng onnx.

ATC -- Model =./resnet50.onnx \
-- Khung = 5 \
-- Output =./resnet50
-- Input_shape = "actual_input_1:1,3,224,224" \
-- Soc_version = ascend310b4

Hãy xem lại các lập luận quan trọng trong lệnh này:

Tranh LuậnMô tả
-- ModelChỉ định đường dẫn đến tập tin Mô hình đầu vào của bạn (ví dụ: G.,. Onnx).
-- KhungXác định khung gốc.5Là viết tắt của onnx.
-- OutputĐặt đường dẫn và tên cho đầu ra. OmTệp không có phần mở rộng.
-- Input_shapeCho người biên dịch biết kích thước đầu vào chính xác cho mô hình của bạn.
-- Soc_versionChỉ định chip Target Ascend trên bảng của bạn.

Ngôn ngữ điện toán Ascend

Bạn sẽ sử dụngNgôn ngữ tính toán Ascend (ascendcl)Để tương tác với mô hình đã chuyển đổi của bạn. Ascendcl là một API cho phép ứng dụng của bạn giao tiếp với bộ xử lý Ascend ai. Đối với các nhà phát triển Python, SDK Cung cấp thư viện có tênPyacl. API này cung cấp cho bạn các chức năng để quản lý bảng, tải mô hình của bạn và thực hiện suy luận học máy.

API bao gồm các công cụ để quản lý bộ nhớ. Bạn có thể sử dụng các chức năng nhưAlloctensorĐể phân bổ bộ nhớ cho dữ liệu đầu vào và đầu ra của bạn trực tiếp trên thiết bị. Điều khiển này giúp tối ưu hóa hiệu suất bằng cách quản lý Cách sử dụng bộ nhớ trong quá trình xử lý dữ liệu. Ascendcl cũng cung cấp các chức năng cho cả thực hiện đồng bộ và không đồng bộ, mang lại cho bạn sự linh hoạt trong cách bạn thiết kế các ứng dụng ai.

Dưới đây là một đoạn mã Python đơn giản sử dụngPyaclĐể thể hiện logic cốt lõi. Mã này thể hiện việc tải một mô hình và chuẩn bị suy luận.

Nhập khẩu acl

#1. khởi tạo ascendcl
RET = acl.init()

#2. phân bổ Tài Nguyên (thiết bị, ngữ cảnh, Luồng)
Device_id = 0
RET = acl. RT. set_device(device_id)
Ngữ cảnh, RET = acl. RT. create_context(device_id)
Stream, RET = acl. RT. create_stream()

#3. tải. Mô hình Om
Model_path = "./resnet50.om"
Model_id, RET = acl. MDL. load_from_file(model_path)

#. .. Mã để chuẩn bị dữ liệu đầu vào, thực hiện suy luận và xử lý đầu ra...

#4. dỡ bỏ mô hình và tài nguyên phát hành
RET = acl. MDL. unload(model_id)
RET = acl.rt.de stroy_stream (Stream)
RET = acl.rt.de stroy_context (ngữ cảnh)
RET = acl. RT. reset_device(device_id)
RET = acl.finalize()

Triển khai và thực hiện

Bước cuối cùng là triển khai và chạy mã của bạn trên bảng cạnh. Bạn sẽ chuyển Python Script và đã chuyển đổi. OmMô hình cho thiết bị. Khi bạn thực hiện kịch bản, nó sẽ thực hiện quy trình làm việc học toàn bộ máy. API ascendcl sẽ tải mô hình, mã của bạn sẽ chuẩn bị và cung cấp cho nó một hình ảnh, và phần cứng ai sẽ thực hiện tính toán.

Đầu ra của mô hình là một tensor thô của các số. Tensor này đại diện cho xác suất cho mỗi lớp có thể. Mã của bạn phải thực hiện xử lý hậu kỳ trên đầu ra này để có được kết quả dễ đọc của con người. Bạn có thểÁp dụng chức năng softmax cho những con số này để có được xác suất cuối cùng. Xác suất cao nhất tương ứng với lớp dự đoán cho hình ảnh đầu vào. Bước cuối cùng này biến dữ liệu thô từ mô hình học sâu của bạn thành một câu trả lời có ý nghĩa cho ứng dụng thị giác máy tính của bạn. Điều này hoàn thành dự án ai đầu tiên của bạn, từ lựa chọn mô hình đến suy luận trên thiết bị và xử lý kết quả.


Bây giờ bạn có thể xây dựng các ứng dụng ai mạnh mẽ cho HiSilicon ai socs. Con Đường nhanh nhất của bạn sử dụng SDK Ascend cann với các khung học Open Machine. Cách tiếp cận này đơn giản hóa việc phát triển Ai cho các thiết bị Edge. Các dự án tương lai của bạn có thể theo mô hình cốt lõi để thành công.

Quy trình làm việc ai của bạn trên bảng🗺️

  1. Thiết lập SDK cann trên bảng của bạn.
  2. Chuyển đổi mô hình của bạn với công cụ ATC.
  3. Triển khai mã của bạn bằng API ascendcl để xử lý trên thiết bị.

Hành trình học tập này chuẩn bị cho bạn tính toán tiên tiến. Bạn có thể mở rộng kỹ năng học máy và khám phá các khả năng xử lý ai mới trên bảng của bạn. SDK chính thức và tài nguyên cộng đồng hỗ trợ việc học tiếp của bạn.

Câu hỏi thường gặp

Nếu mẫu của tôi không có định dạng onnx thì sao?

Bạn có thể chuyển đổi mô hình của bạn sang onnx trước. Hầu hết các khuôn khổ ai, như tensorflow và pytorch, cung cấp công cụ cho các mô hình Xuất Khẩu. Bước bổ sung này chuẩn bị mô hình của bạn cho công cụ ATC. Đây là một thực hành tiêu chuẩn trong nhiều luồng công việc phát triển ai.

Tôi có thể sử dụng các công cụ này cho các dự án khác ngoài tầm nhìn máy tính không?

Vâng, bạn có thể. Bộ công cụ Ascend cann không giới hạn ở các tác vụ tầm nhìn. Bạn có thể xây dựng nhiều loại ứng dụng ai. Điều này bao gồm các dự án nhận dạng giọng nói và xử lý ngôn ngữ tự nhiên. Các công cụ hỗ trợ một loạt các mô hình ai.

Tôi có thể tìm các dự án ai mẫu để bắt đầu ở đâu?

Khám phá các dự án mẫu🧑‍💻

Bạn có thể tìm thấy nhiều dự án ví dụ trong cộng đồng Ascend trên github. Các mẫu này bao gồm các tác vụ ai khác nhau và cung cấp mã hoàn chỉnh. Chúng là một nguồn tài nguyên tuyệt vời để học cách xây dựng các ứng dụng của riêng bạn.

Tôi có cần một phiên bản Linux cụ thể cho máy chủ không?

Vâng, bạn cần một sự phân phối Linux tương thích. Tài liệu cann toolkit liệt kê các hệ điều hành và phiên bản được hỗ trợ. Bạn nên kiểm tra hướng dẫn chính thức để tránh sự cố cài đặt. Điều này đảm bảo môi trường phát triển ai của bạn ổn định.

Related Articles