---
title: 多设备编程总述
description: "多设备编程使用户能够利用多个NPU（Neural-Network Processing Unit）的综合性能和内存等资源，实现超越单个NPU的性能水平。通常，每个物理NPU在Runtime编程界面中被抽象为一个Device，任务下发时需要有Device中的Context进行支撑，因此多设备编程需要管理多个Device及其相应的Context。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/programug/acldevg/runtime_doc_dev_0034.html
sourcePath: /source/zh/canncommercial/900/programug/acldevg/runtime_doc_dev_0034.html
indexId: 55fb6f277a991973f62e1e70e0400262000dc15d4b55fc4c520a1780a89256d573
---
# 多设备编程总述

多设备编程使用户能够利用多个NPU（Neural-Network Processing Unit）的综合性能和内存等资源，实现超越单个NPU的性能水平。通常，每个物理NPU在Runtime编程界面中被抽象为一个Device，任务下发时需要有Device中的Context进行支撑，因此多设备编程需要管理多个Device及其相应的Context。

一些常见的多NPU编程方法包括：

- 单个主机线程驱动多个NPU。
- 多个主机线程，每个线程驱动自己的NPU。
- 多个单线程主机进程，每个进程驱动自己的NPU。
- 多个主机进程，每个进程包含多个线程，每个线程驱动自己的NPU。
