Intel® NPU 加速库使用教程

Intel® NPU 加速库使用教程

intel-npu-acceleration-library Intel® NPU Acceleration Library intel-npu-acceleration-library 项目地址: https://gitcode.com/gh_mirrors/in/intel-npu-acceleration-library

1. 项目介绍

Intel® NPU 加速库是一个 Python 库,旨在通过利用 Intel 神经处理单元 (NPU) 的强大功能来提高应用程序的效率。NPU 是集成在 Intel Core Ultra 处理器中的 AI 加速器,具有独特的架构,包括计算加速和数据传输能力。该库通过先进的编译器技术优化 AI 工作负载,确保 AI 任务的并行执行,并最大化计算利用率。

2. 项目快速启动

安装

首先,确保您的系统中有一个可用的 NPU。然后,您可以使用 pip 安装该库:

pip install intel-npu-acceleration-library

运行一个 LLaMA 模型

以下是一个简单的脚本,用于在 NPU 上运行一个 LLaMA 模型:

from transformers import AutoTokenizer, TextStreamer
from intel_npu_acceleration_library import NPUModelForCausalLM
import torch

model_id = "TinyLlama/TinyLlama-1.1B-Chat-v1.0"
model = NPUModelForCausalLM.from_pretrained(model_id, use_cache=True, dtype=torch.int8).eval()
tokenizer = AutoTokenizer.from_pretrained(model_id, use_default_system_prompt=True)
tokenizer.pad_token_id = tokenizer.eos_token_id

streamer = TextStreamer(tokenizer, skip_special_tokens=True)
query = input("Ask something: ")
prefix = tokenizer(query, return_tensors="pt")["input_ids"]

generation_kwargs = dict(
    input_ids=prefix,
    streamer=streamer,
    do_sample=True,
    top_k=50,
    top_p=0.9,
    max_new_tokens=512,
)

print("Run inference")
_ = model.generate(**generation_kwargs)

3. 应用案例和最佳实践

应用案例

  • 大型语言模型 (LLM) 解码:使用 NPU 加速库可以显著提高 LLM 模型的解码速度,适用于自然语言处理任务。
  • 矩阵乘法:通过 NPU 加速库,可以高效地执行矩阵乘法操作,适用于机器学习和深度学习中的各种计算任务。

最佳实践

  • 优化数据传输:利用 NPU 的 DMA 引擎,确保数据在系统内存和缓存之间的高效传输。
  • 并行执行:通过编译器技术,确保 AI 任务的并行执行,最大化计算资源的利用率。

4. 典型生态项目

  • Intel AI PC:Intel AI PC 是一个集成了 NPU 的计算平台,适用于各种 AI 应用场景。
  • Intel Core Ultra 处理器:这些处理器集成了 NPU,提供了强大的 AI 计算能力。
  • OpenVINODirectML:这些是 Intel 提供的生产就绪的 AI 加速解决方案,与 NPU 加速库结合使用,可以进一步提升性能。

通过以上内容,您可以快速了解并开始使用 Intel® NPU 加速库,结合实际应用案例和最佳实践,充分发挥 NPU 的计算潜力。

intel-npu-acceleration-library Intel® NPU Acceleration Library intel-npu-acceleration-library 项目地址: https://gitcode.com/gh_mirrors/in/intel-npu-acceleration-library

### 使用英特尔 NPU 进行推理 对于使用英特尔神经网络处理器 (NPU) 来执行模型推理的任务,通常涉及几个核心组件和技术栈。这些技术不仅限于硬件本身还包括软件工具链的支持。 #### 准备工作环境 为了能够顺利利用英特尔 NPU 完成推理操作,开发者需要先安装并配置好相应的开发环境。这包括但不限于下载和设置 Intel® Neural Compute SDK 或者 OpenVINO™ 工具套件[^4]。OpenVINO 是一个特别强大的框架,它允许优化后的深度学习模型部署到各种计算平台上运行,其中包括了针对特定架构做了性能调优的版本。 #### 转换与优化模型 一旦准备工作完成之后,则需将训练好的模型转换为目标平台兼容的形式。通过 Model Optimizer 组件可以实现这一点;该工具负责读取原始框架中的模型文件(如 TensorFlow、Caffe 等),对其进行一系列变换以适应目标设备特性,并最终导出为中间表示形式(.xml 和 .bin 文件)[^5]。 ```bash mo.py --input_model my_frozen_graph.pb \ --model_name optimized_model \ --data_type FP16 ``` 上述命令展示了如何使用 `Model Optimizer` 将来自不同源框架的一个预训练模型转化为适合在低功耗边缘端使用的高效二进制格式。 #### 加载模型至 NPU 并执行推理 最后一步就是编写应用程序来加载经过处理过的模型并对输入数据实施预测分析。下面给出了一段 Python 代码片段作为例子说明怎样借助 OpenVINO 推理引擎 API 实现这一过程: ```python import cv2 as cv from openvino.runtime import Core, AsyncInferQueue ie = Core() net = ie.read_model(model="optimized_model.xml", weights="optimized_model.bin") compiled_model = ie.compile_model(net, "GPU") # 如果有多个NPU可以选择具体编号比如:"HDDL.0" infer_queue = AsyncInferQueue(compiled_model) def callback(infer_request): result = infer_request.get_output_tensor().data print("Prediction results:",result.argmax()) image = cv.imread('test_image.jpg') input_tensor = image.transpose(2, 0, 1).reshape((1, *image.shape)) for i in range(len(infer_queue)): infer_queue.start_async({0: input_tensor}, userdata=i) infer_queue.wait_all() print("All Inferences Completed.") ``` 这段脚本创建了一个异步推断队列,在其中提交图像给已编译好的模型实例进行分类识别任务。当所有请求都完成后会打印最高概率类别索引值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

巫清焘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值