Trang này mô tả cách xây dựng thư viện LiteRT cho nền tảng dựa trên ARM máy tính.
LiteRT hỗ trợ hai hệ thống xây dựng và các tính năng được hỗ trợ trên mỗi hệ thống hệ thống xây dựng không giống hệt nhau. Hãy xem bảng sau đây để chọn một bản dựng phù hợp hệ thống.
Tính năng | Bazel | CMake |
---|---|---|
Chuỗi công cụ định sẵn | cánh tay, aarch64 | armel, armhf, aarch64 |
Chuỗi công cụ tuỳ chỉnh | khó sử dụng hơn | dễ sử dụng |
Chọn hoạt động TF | được hỗ trợ | không được hỗ trợ |
Người được uỷ quyền của GPU | chỉ dành cho Android | bất kỳ nền tảng nào hỗ trợ OpenCL |
XNNPack | được hỗ trợ | được hỗ trợ |
Bánh xe Python | được hỗ trợ | được hỗ trợ |
API C | được hỗ trợ | được hỗ trợ |
C++ API | được hỗ trợ cho các dự án Bazel | được hỗ trợ cho các dự án CMake |
Biên dịch chéo cho ARM với CMake
Nếu có một dự án CMake hoặc nếu muốn sử dụng một chuỗi công cụ tuỳ chỉnh, bạn nên hiệu quả hơn khi dùng CMake để biên dịch chéo. Có một gói Biên dịch chéo LiteRT với CMake dành cho việc này.
Biên dịch chéo cho ARM với Bazel
Nếu có một dự án Bazel hoặc nếu muốn sử dụng hoạt động TF, bạn nên dùng Bazel hệ thống xây dựng. Bạn sẽ sử dụng Chuỗi công cụ ARM GCC 8.3 cùng với Bazel để tạo thư viện dùng chung ARM32/64.
Cấu trúc mục tiêu | Cấu hình Bazel | Thiết bị tương thích |
---|---|---|
armhf (ARM32) | --config=elinux_armhf | RPI3, RPI4 với 32 bit Hệ điều hành Raspberry Pi |
AArch64 (ARM64) | --config=elinux_aarch64 | San hô, RPI4 với Ubuntu 64 bit |
Các hướng dẫn sau đã được thử nghiệm trên Ubuntu 16.04.3 64-bit PC (AMD64) và hình ảnh docker của TensorFlow devel tensorflow/tensorflow:devel.
Để biên dịch chéo LiteRT với Bazel, hãy làm theo các bước sau:
Bước 1. Cài đặt Bazel
Bazel là hệ thống xây dựng chính cho TensorFlow. Cài đặt phiên bản mới nhất của hệ thống xây dựng Bazel.
Bước 2. Nhân bản kho lưu trữ TensorFlow
git clone https://github.com/tensorflow/tensorflow.git tensorflow_src
Bước 3. Tạo tệp nhị phân ARM
Thư viện C
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite/c:libtensorflowlite_c.so
Bạn có thể tìm thấy thư viện chia sẻ trong:
bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so
.
Séc LiteRT C API để biết thông tin chi tiết.
Thư viện C++
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so
Bạn có thể tìm thấy thư viện chia sẻ trong:
bazel-bin/tensorflow/lite/libtensorflowlite.so
.
Hiện tại, không có cách đơn giản nào để trích xuất tất cả các tệp tiêu đề cần thiết, Vì vậy, bạn phải đưa tất cả các tệp tiêu đề vào tensorflow/lite/ từ TensorFlow kho lưu trữ. Ngoài ra, bạn sẽ cần có các tệp tiêu đề từ FlatBuffers và Tạm biệt.
...
Bạn cũng có thể tạo các mục tiêu Bazel khác bằng chuỗi công cụ. Sau đây là một số nội dung hữu ích mục tiêu.
- //tensorflow/lite/tools/benchmark:benchmark_model
- //tensorflow/lite/examples/label_image:label_image