news 2026/7/4 8:29:37

CANN/GE Python内存分配器API

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/GE Python内存分配器API

Allocator

【免费下载链接】geGE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力,并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge

产品支持情况

产品是否支持
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

模块导入

from ge.allocator import Allocator, MemBlock

功能说明

Allocator 是外部内存分配器的抽象基类,用于自定义设备内存管理策略。MemBlock 表示已分配的内存块,持有设备内存地址和大小。用户需要继承 Allocator 类并实现 malloc 和 free 方法,然后通过 Session.register_external_allocator() 注册到指定 stream。

类定义

MemBlock 类

class MemBlock: def __init__(self, addr: int, size: int) @property def addr(self) -> int @property def size(self) -> int

Allocator 类

class Allocator(ABC): @abstractmethod def malloc(self, size: int) -> MemBlock @abstractmethod def free(self, block: MemBlock) -> None

函数说明

MemBlock 类

__init__
def __init__(self, addr: int, size: int)

功能说明:创建内存块实例,持有设备内存地址和大小信息。

参数说明

参数名类型必选/可选说明
addrint必选设备内存地址。
sizeint必选内存大小,单位为字节。

返回值说明:无返回值。

addr(属性)
@property def addr(self) -> int

功能说明:获取设备内存地址。

参数说明:无参数。

返回值说明

返回值类型说明
int设备内存地址。
size(属性)
@property def size(self) -> int

功能说明:获取内存大小。

参数说明:无参数。

返回值说明

返回值类型说明
int内存大小,单位为字节。

Allocator 类

malloc
@abstractmethod def malloc(self, size: int) -> MemBlock

功能说明:分配指定大小的设备内存,返回包含设备内存地址和大小的 MemBlock 对象。此为抽象方法,子类必须实现。

参数说明

参数名类型必选/可选说明
sizeint必选待分配的内存大小,单位为字节。

返回值说明

返回值类型说明
MemBlock已分配的内存块对象,包含有效的设备内存地址。

约束说明

  • 子类必须实现此方法,否则无法实例化。
  • 分配失败时应抛出 MemoryError。
free
@abstractmethod def free(self, block: MemBlock) -> None

功能说明:释放之前通过 malloc 分配的设备内存。此为抽象方法,子类必须实现。

参数说明

参数名类型必选/可选说明
blockMemBlock必选待释放的内存块对象,应为之前通过 malloc 返回的 MemBlock 实例。

返回值说明:无返回值。

约束说明

  • 子类必须实现此方法,否则无法实例化。
  • 不应对同一内存块重复释放。

【免费下载链接】geGE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力,并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/4 8:28:35

10分钟快速上手:FlipperZeroHondaFirmware安装与配置教程

10分钟快速上手:FlipperZeroHondaFirmware安装与配置教程 【免费下载链接】FlipperZeroHondaFirmware Custom Firmware for the Flipper Zero, to add support for Honda key fobs (FCC ID: KR5V2X) 项目地址: https://gitcode.com/gh_mirrors/fl/FlipperZeroHond…

作者头像 李华
网站建设 2026/7/4 8:27:29

如何在CSS中直接编写SVG?postcss-write-svg完整入门指南

如何在CSS中直接编写SVG?postcss-write-svg完整入门指南 【免费下载链接】postcss-write-svg Write SVGs directly in CSS 项目地址: https://gitcode.com/gh_mirrors/po/postcss-write-svg postcss-write-svg是一款强大的PostCSS插件,它让开发者…

作者头像 李华
网站建设 2026/7/4 8:27:20

Linux 内核 dmatest 模块实战:5步配置与 DMA_MEMCPY 性能测试

Linux 内核 dmatest 模块实战:5步配置与 DMA_MEMCPY 性能测试在嵌入式开发和内核驱动调试中,DMA(直接内存访问)引擎的性能直接影响系统吞吐量。本文将手把手带你完成dmatest模块的完整配置流程,并通过实测数据解读DMA_…

作者头像 李华
网站建设 2026/7/4 8:26:49

深入理解nginx-auth-ldap原理:从代码实现看Nginx模块开发

深入理解nginx-auth-ldap原理:从代码实现看Nginx模块开发 【免费下载链接】nginx-auth-ldap LDAP authentication module for nginx 项目地址: https://gitcode.com/gh_mirrors/ng/nginx-auth-ldap nginx-auth-ldap是一个功能强大的Nginx模块,它允…

作者头像 李华
网站建设 2026/7/4 8:26:01

前后端RSA非对称加密实战:Spring Boot+Vue实现数据传输安全

1. 项目概述:为什么前后端需要非对称加密?在前后端分离架构成为主流的今天,数据在公网上的传输安全是每个开发者都必须直面的问题。想象一下,用户在你的登录页面输入了密码,这个密码从浏览器出发,经过可能被…

作者头像 李华
网站建设 2026/7/4 8:24:48

CANN/asc-devkit SIMD寄存器对齐存储API

asc_storealign_postupdate 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: http…

作者头像 李华