---
title: 函数：ipc_mem_import_by_key
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/runtimeapi/aclpythondevg_01_1072.html
sourcePath: /source/zh/canncommercial/900/API/runtimeapi/aclpythondevg_01_1072.html
indexId: c41cd53804ff0718bd18ebff3b7f37db739d927830eda9c31e34ace521761fbe71
---
# 函数：ipc_mem_import_by_key

#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | √ |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |
| Atlas 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | x |


#### 功能说明

在本进程中获取key的信息，并返回本进程可以使用的Device内存地址指针。本接口需与其它接口配合使用，以便实现内存共享的目的，配合使用流程请参见函数：ipc_mem_get_export_key接口处的说明。


#### 函数原型

- C函数原型

```
aclError aclrtIpcMemImportByKey(void **devPtr, const char *key, uint64_t flag)
```


- python函数
  1 dev_ptr, ret = acl.rt.ipc_mem_import_by_key(key, flags)


#### 参数说明

| 参数名 | 说明 |
| --- | --- |
| key | str，共享内存key。 |
| flags | 是否开启两个Device之间的数据交互。 取值为如下宏： ACL\_RT\_IPC\_MEM\_IMPORT\_FLAG\_DEFAULT：默认值，关闭两个Device之间的数据交互。 配置为该值时，需单独调用acl.rt.device\_enable\_peer\_access接口开启两个Device之间的数据交互。 ACL\_RT\_IPC\_MEM\_IMPORT\_FLAG\_ENABLE\_PEER\_ACCESS：开启两个Device之间的数据交互。 配置为该值时，则无需调用acl.rt.device\_enable\_peer\_access接口。 宏的定义如下： \#define ACL\_RT\_IPC\_MEM\_IMPORT\_FLAG\_DEFAULT 0x0UL \#define ACL\_RT\_IPC\_MEM\_IMPORT\_FLAG\_ENABLE\_PEER\_ACCESS 0x1UL |


#### 返回值说明

| 返回值 | 说明 |
| --- | --- |
| dev\_ptr | int，Device内存地址指针。 |
| ret | int，错误码，返回0表示成功，返回其它值表示失败。 |
