注:如下接口对外封装了相同含义的Python接口,详细信息可参考src/smem/csrc/python_wrapper/memfabric_hybrid/pymf_hybrid.cpp

C接口

安装完成 run 包并 source 安装路径下的 set_env.sh 后,会添加 memfabric_hybrid 安装路径的环境变量 MEMFABRIC_HYBRID_HOME_PATH

使用 memfabric_hybrid 相关接口时,需要 include 相关头文件(在 ${MEMFABRIC_HYBRID_HOME_PATH}/${arch}-${os}/include/smem/host路径下),并且在链接时需要添加libmf_smem.so(在 ${MEMFABRIC_HYBRID_HOME_PATH}/${arch}-${os}/lib64 路径下) 依赖

可以通过 MEMFABRIC_HYBRID_HOME_PATH 环境变量指定头文件和 lib 库依赖路径,从而完成代码构建

公共接口列表

1. 服务初始化/退出

smem_init

初始化运行环境

int32_t smem_init(uint32_t flags);
参数/返回值 含义
flags 预留参数
返回值 成功返回0,其他为错误码

smem_uninit

退出运行环境

void smem_uninit();

2. 创建config store对象

smem_create_config_store

int32_t smem_create_config_store(const char *storeUrl, uint64_t flags);
参数/返回值 含义
storeUrl 业务面地址,格式支持 tcp://ip:portetcd://ip:portetcd://ip:port#instanceId(etcd 多集群隔离);如 tcp://[::1]:5124tcp://127.0.0.1:5124etcd://127.0.0.1:5124#clusterA
flags 创建标记位,可选标记 SMEM_STORE_SKIP_RECOVER
返回值 成功返回0,其他为错误码

3. 日志设置

smem_set_extern_logger

设置自定义日志函数

int32_t smem_set_extern_logger(void (*func)(int level, const char *msg));
参数/返回值 含义
func 函数指针
level 日志级别,0-debug 1-info 2-warn 3-error
msg 日志内容
返回值 成功返回0,其他为错误码

smem_set_log_level

设置日志打印级别

int32_t smem_set_log_level(int level);
参数/返回值 含义
level 日志级别,0-debug 1-info 2-warn 3-error
返回值 成功返回0,其他为错误码

4. 安全证书设置

smem_set_conf_store_tls

安装证书设置

int32_t smem_set_conf_store_tls(bool enable, const char *tls_info, const uint32_t tls_info_len);
参数/返回值 含义
enable whether to enable tls(当前为预留接口,功能尚未实现)
tls_info the format describle in memfabric SECURITYNOTE.md, if disabled tls_info won't be use
tls_info_len length of tls_info, if disabled tls_info_len won't be use
返回值 成功返回0,其他为错误码

smem_set_config_store_tls_key

设置私钥、口令和解密的函数,在开启Tls时,需要调用该接口。

int32_t smem_set_config_store_tls_key(
    const char *tls_pk,
    const uint32_t tls_pk_len,
    const char *tls_pk_pw,
    const uint32_t tls_pk_pw_len,
    const smem_decrypt_handler h
);
参数/返回值 含义
tls_pk 密钥内容
tls_pk_len 密钥内容长度
tls_pk_pw 口令内容
tls_pk_pw_len 口令内容长度
h 密钥解密函数
返回值 成功返回0,其他为错误码
typedef int (*smem_decrypt_handler)(const char *cipherText, size_t cipherTextLen, char *plainText, size_t &plainTextLen);
参数/返回值 含义
cipherText 密文(加密的用来加密私钥的密码)
cipherTextLen 密文的长度
plainText 解密后的密码(出参)
plainTextLen 解密后的密码长度(出参)
返回值 错误信息

5. 错误信息获取/清理

smem_get_last_err_msg

获取最后一条错误信息

const char *smem_get_last_err_msg();
参数/返回值 含义
返回值 错误信息

smem_get_and_clear_last_err_msg

获取最后一条错误信息并清空所有错误信息

const char *smem_get_and_clear_last_err_msg();
参数/返回值 含义
返回值 错误信息

6. 错误码定义

错误码宏 说明
SMEM_OK 0 成功
SMEM_ERROR -1 通用错误
SMEM_INVALID_PARAM -2000 无效参数
SMEM_MALLOC_FAILED -2001 内存分配失败
SMEM_NO_RESOURCES -2002 资源不足
SMEM_NOT_STARTED -2003 服务未启动
SMEM_TIMEOUT -2004 操作超时
SMEM_REPEAT_INVOKE -2005 重复调用
SMEM_DUPLICATED -2006 重复创建
SMEM_NOT_EXIST -2007 对象不存在
SMEM_NOT_INIT -2008 未初始化
SMEM_RES_IN_USE -2009 资源被占用
SMEM_PARTIAL_FAILED -2012 部分失败(批量操作)
SMEM_NOT_CONNECTED -2014 连接断开

Store Backend 错误码(从 smem_def.h):

错误码宏 说明
SMEM_STORE_BACKEND_CODE_OK 0 后端操作成功
SMEM_STORE_BACKEND_CODE_INTERNAL -3000 后端内部错误
SMEM_STORE_BACKEND_CODE_INVAL -3001 后端参数无效
SMEM_STORE_BACKEND_CODE_BUFEX -3002 后端缓冲区不足
SMEM_STORE_BACKEND_CODE_PERM -3003 后端权限不足
SMEM_STORE_BACKEND_CODE_NORES -3004 后端资源不足
SMEM_STORE_BACKEND_CODE_NOENT -3005 后端条目不存在
SMEM_STORE_BACKEND_CODE_LOCKED -3006 后端锁冲突
SMEM_STORE_BACKEND_CODE_UNLOCKED -3007 后端未锁定

注:以上错误码定义位于 smem.h(通用错误码)和 smem_def.h(Store Backend 错误码)头文件中。

BM接口列表

1. BM初始化/退出

smem_bm_config_init

BM配置初始化

int32_t smem_bm_config_init(smem_bm_config_t *config);
参数/返回值 含义
config 初始化参数
返回值 成功返回0,其他为错误码

smem_bm_init

初始化BM

int32_t smem_bm_init(const char *storeURL, uint32_t worldSize, uint16_t deviceId, const smem_bm_config_t *config);
参数/返回值 含义
storeURL config store地址,格式支持 tcp://ip:portetcd://ip:portetcd://ip:port#instanceId(etcd 多集群隔离)
worldSize 参与初始化BM的rank数量,最大支持1024
deviceId 当前rank的deviceId
config BM初始化配置
返回值 成功返回0,其他为错误码

smem_bm_config_t 结构体参数说明

参数 含义
initTimeout smem_bm_init 函数超时时间,默认120秒(最小1秒,最大SMEM_BM_TIMEOUT_MAX)
createTimeout smem_bm_create 函数超时时间,默认120秒(最小1秒,最大SMEM_BM_TIMEOUT_MAX)
controlOperationTimeout 控制操作超时时间,默认120秒(最小1秒,最大SMEM_BM_TIMEOUT_MAX)
startConfigStoreServer 是否启动config store,默认true
startConfigStoreOnly 仅启动config store
dynamicWorldSize 成员能否动态加入
unifiedAddressSpace 全局统一地址空间,默认true,当前仅支持true
autoRanking 自动分配rank ID,默认false
rankId 用户指定的rank ID,仅当autoRanking为false时有效
flags 其他标志,默认0
hcomUrl hcom地址
hcomTlsConfig hcom的TLS配置
storeTlsConfig store的TLS配置

smem_bm_uninit

BM退出

void smem_bm_uninit(uint32_t flags);
参数/返回值 含义
flags 预留参数

2. 创建/销毁BM

smem_bm_create

创建BM

smem_bm_t smem_bm_create(uint32_t id, uint32_t memberSize,
   smem_bm_data_op_type_t dataOpType, uint64_t localDRAMSize,
   uint64_t localHBMSize, uint32_t flags);
参数/返回值 含义
id BM id,用户自定义,BM之间取不同值
memberSize 创建BM的rank数量(保留参数,后续迭代使用)
dataOpType 数据操作类型,取值内容参考smem_bm_data_op_type定义
localDRAMSize 创建BM当前rank贡献的DRAM空间大小,单位字节,范围为(0, 2TB]
localHBMSize 创建BM当前rank贡献的HBM空间大小,单位字节,范围为(0, 64GB]
flags 创建标记位,预留
返回值 成功返回BM handle,失败返回空指针

smem_bm_create2

创建BM

smem_bm_t smem_bm_create2(uint32_t id, const smem_bm_create_option_t *option);
参数/返回值 含义
id BM id,用户自定义,BM之间取不同值
option 创建BM的配置参数
返回值 成功返回BM handle,失败返回空指针

smem_bm_create_option_t 结构体参数说明

参数 含义
maxDramSize 所有rank贡献给BM对象的最大DRAM内存大小
maxHbmSize 所有rank贡献给BM对象的最大HBM内存大小
localDRAMSize 当前rank贡献给BM对象的DRAM内存大小,单位字节,范围为(0, 2TB]
localHBMSize 当前rank贡献给BM对象的HBM内存大小,单位字节,范围为(0, 64GB]
dataOpType 数据操作类型,如果tag或tagOpInfo为空,则使用此类型
enable56BitsGva 当总地址空间超过32TB时启用56位GVA
flags 可选标志,默认0
tag BM的标识tag,例如:tag_1
tagOpInfo tag间的操作类型,例如:tag1:DEVICE_SDMA:tag1,tag1:DEVICE_RDMA:tag2
dramShmFd DRAM共享内存文件描述符

smem_bm_destroy

销毁BM

void smem_bm_destroy(smem_bm_t handle);
参数/返回值 含义
handle 待销毁BM handle

3.加入/退出BM

smem_bm_join

加入BM

int32_t smem_bm_join(smem_bm_t handle, uint32_t flags);
参数/返回值 含义
handle 待加入BM handle
flags 预留参数
返回值 成功返回0,否则返回错误码

smem_bm_leave

退出BM

int32_t smem_bm_leave(smem_bm_t handle, uint32_t flags);
参数/返回值 含义
handle 待退出BM handle
flags 预留参数
返回值 成功返回0,否则返回错误码

smem_bm_extend_local_mem

在本地 rank 上动态扩增內存。待增加内存必须由 smem_bm_create() 创建

int32_t smem_bm_extend_local_mem(smem_bm_t handle, smem_bm_mem_type_t memType, uint64_t size);
参数/返回值 含义
handle 待扩展内存 handle
memType 内存类型,支持 SMEM_MEM_TYPE_DEVICE、SMEM_MEM_TYPE_HOST
size 当前rank扩展内存的大小
返回值 成功返回0,否则返回错误码

4.拷贝/批量拷贝数据对象

smem_bm_copy

拷贝数据对象

int32_t smem_bm_copy(smem_bm_t handle, smem_copy_params_t *params,  
    smem_bm_copy_type_t t, uint32_t flags);
参数/返回值 含义
handle BM handle
params 拷贝数据的相关参数
t 数据拷贝类型,L2G/G2L/G2H/H2G,L=local HBM memory,G=global space,H=Host memory
flags ASYNC_COPY_FLAG:异步执行;COPY_EXTEND_FLAG:A3超节点内使用MTE执行拷贝
返回值 成功返回0,失败返回错误码

smem_bm_copy_batch

批量拷贝数据对象

int32_t smem_bm_copy_batch(smem_bm_t handle, smem_batch_copy_params_t *params, smem_bm_copy_type_t t, uint32_t flags);
参数/返回值 含义
handle BM handle
params 拷贝数据的相关参数
t 数据拷贝类型,L2G/G2L/G2H/H2G,L=local HBM memory,G=global space,H=Host memory
flags ASYNC_COPY_FLAG:异步执行;COPY_EXTEND_FLAG:A3超节点内使用MTE执行拷贝
返回值 成功返回0,失败返回错误码

smem_bm_copy_batch_partial_succeed

批量拷贝数据对象,批量中部分失败时,可以通过出参判断具体哪个成功哪个失败

int32_t smem_bm_copy_batch_partial_succeed(
        smem_bm_t handle,
        smem_batch_copy_params_t *params,
        smem_bm_copy_type_t t,
        uint32_t flags, smem_batch_copy_result_t *result
);
参数/返回值 含义
handle BM handle
params 拷贝数据的相关参数
t 数据拷贝类型,L2G/G2L/G2H/H2G,L=local HBM memory,G=global space,H=Host memory
flags ASYNC_COPY_FLAG:异步执行;COPY_EXTEND_FLAG:A3超节点内使用MTE执行拷贝
result 出参:当部分失败时,此出参会指定具体哪个成功,哪个失败
返回值 成功返回0,部分失败返回SMEM_PARTIAL_FAILED(-2012),其它失败返回对应错误码

5.查询接口

smem_bm_get_rank_id

获取当前rank的id

uint32_t smem_bm_get_rank_id(void);
参数/返回值 含义
返回值 成功返回当前rank id,失败返回u32最大值

smem_bm_get_local_mem_size_by_mem_type

获取创建BM本地贡献的空间大小

uint64_t smem_bm_get_local_mem_size_by_mem_type(smem_bm_t handle, smem_bm_mem_type_t memType);
参数/返回值 含义
handle BM handle
memType Bmemory type, device or host
返回值 本地贡献空间大小,单位byte

smem_bm_ptr_by_mem_type

获取rank id对应在gva上的地址位置

void *smem_bm_ptr_by_mem_type(smem_bm_t handle, smem_bm_mem_type_t memType, uint16_t peerRankId);
参数/返回值 含义
handle BM handle
memType memory type, SMEM_MEM_TYPE_DEVICE or SMEM_MEM_TYPE_HOST
peerRankId rank id
返回值 rank地址对应空间位置指针

smem_bm_get_rank_id_by_gva

根据全局地址获取rankId

uint32_t smem_bm_get_rank_id_by_gva(smem_bm_t handle, void *gva);
参数/返回值 含义
handle BM handle
gva addr
返回值 rank id if successful, UINT32_MAX is returned if failed

6. 用户内存register/unregister

smem_bm_register_user_mem

注册一段本地的用户内存

int32_t smem_bm_register_user_mem(smem_bm_t handle, uint64_t addr, uint64_t size);
参数/返回值 含义
handle BM handle
addr 注册地址的起始地址指针
size 注册地址的大小
返回值 成功返回0,失败返回错误码

注意: device_rdma场景下注册的DRAM buffer需要保证首地址4K对齐,否则无法注册成功

smem_bm_unregister_user_mem

对一段注册过的本地用户内存执行反注册

int32_t smem_bm_unregister_user_mem(smem_bm_t handle, uint64_t addr);
参数/返回值 含义
handle BM handle
addr 注销地址的起始地址指针
返回值 成功返回0,失败返回错误码

7.等待异步操作完成

smem_bm_wait

等待异步操作完成

int32_t smem_bm_wait(smem_bm_t handle);
参数/返回值 含义
handle BM handle
返回值 成功返回0,失败返回错误码

SHM接口列表

1.SHM初始化/退出

smem_shm_config_init

SHM配置初始化

int32_t smem_shm_config_init(smem_shm_config_t *config);
参数/返回值 含义
config 初始化配置
返回值 成功返回0,失败返回错误码

smem_shm_init

SHM初始化

int32_t smem_shm_init(const char *configStoreIpPort, uint32_t worldSize, uint32_t rankId, 
    uint16_t deviceId, smem_shm_config_t *config);
参数/返回值 含义
configStoreIpPort config store地址,格式支持 tcp://ip:porttcp6://[ip]:portetcd://ip:portetcd://ip:port#instanceId(etcd 多集群隔离)
worldSize 参与SHM初始化rank数量,最大支持1024
rankId 当前rank id
deviceId 当前rank的device id
config 初始化SHM配置
返回值 成功返回0,失败返回错误码

smem_shm_uninit

SHM退出

void smem_shm_uninit(uint32_t flags);
参数/返回值 含义
flags 预留参数

2. 创建/销毁SHM

smem_shm_create

创建SHM

smem_shm_t smem_shm_create(uint32_t id, uint32_t rankSize, uint32_t rankId, uint64_t localSize,
    smem_shm_data_op_type dataOpType, uint32_t flags, void **gva);
参数/返回值 含义
id SHM对象id,用户指定,与其他SHM对象不重复,范围为[0, 63]
rankSize 参与创建SHM的rank数量,最大支持1024
rankId 当前rank id
localSize 每个rank贡献到创建SHM对象的对称空间大小,单位字节,范围为[0, 64GB](对应头文件参数名 localSize)
dataOpType 数据操作类型,参考smem_shm_data_op_type类型定义
flags 预留参数
gva 出参,gva空间地址
返回值 SHM对象handle

smem_shm_destroy

销毁SHM

int32_t smem_shm_destroy(smem_shm_t handle, uint32_t flags);
参数/返回值 含义
handle SHM对象handle
flags 预留参数
返回值 成功返回0,失败返回错误码

3. 查询接口

smem_shm_query_support_data_operation

查询支持的数据操作

uint32_t smem_shm_query_support_data_operation(void);
参数/返回值 含义
返回值 参考smem_shm_data_op_type类型定义

smem_shm_get_global_rank

获取rank id

uint32_t smem_shm_get_global_rank(smem_shm_t handle);
参数/返回值 含义
handle SHM对象handle
返回值 在SHM里的rank id

smem_shm_get_global_rank_size

获取rank数量

uint32_t smem_shm_get_global_rank_size(smem_shm_t handle);
参数/返回值 含义
handle SHM对象handle
返回值 在SHM里的rank个数

4. 设置用户context

smem_shm_set_extra_context

设置用户context

int32_t smem_shm_set_extra_context(smem_shm_t handle, const void *context, uint32_t size);
参数/返回值 含义
handle SHM对象handle
context 用户context指针
size 用户context大小,最大64K,单位字节
返回值 成功返回0,失败返回错误码

5. 在SHM对象执行barrier/allgather

smem_shm_control_barrier

在SHM对象执行barrier

int32_t smem_shm_control_barrier(smem_shm_t handle);
参数/返回值 含义
handle SHM对象handle
返回值 成功返回0,失败返回错误码

smem_shm_control_allgather

在SHM对象执行allgather

int32_t smem_shm_control_allgather(smem_shm_t handle, const char *sendBuf, uint32_t sendSize, 
    char *recvBuf, uint32_t recvSize);
参数/返回值 含义
handle SHM对象handle
sendBuf 发送数据buffer
sendSize 发送数据大小,单位字节
recvBuf 接收数据buffer
recvSize 接收数据大小,单位字节
返回值 成功返回0,失败返回错误码

6. rank连通检查

smem_shm_topology_can_reach

rank连通检查

int32_t smem_shm_topology_can_reach(smem_shm_t handle, uint32_t remoteRank, uint32_t *reachInfo);
参数/返回值 含义
handle SHM对象handle
remoteRank 待检查rank id
reachInfo 连通信息类型,参考smem_shm_data_op_type定义
返回值 成功返回0,失败返回错误码

7. 注册退出回调函数

smem_shm_register_exit

注册退出回调函数

int32_t smem_shm_register_exit(smem_shm_t handle, void (*exit)(int));
参数/返回值 含义
handle SHM对象handle
exit 退出函数
返回值 成功返回0,失败返回错误码

8. PE主动退出接口

smem_shm_global_exit

PE主动退出接口

void smem_shm_global_exit(smem_shm_t handle, int status);
参数/返回值 含义
handle SHM对象handle
status 退出状态

注:如下接口对外封装了相同含义的Python接口,详细信息可参考src/mooncake_adapter/csrc/transfer/pytransfer.cpp

TRANS接口列表

1. TRANS初始化/退出

smem_trans_config_init

TRANS配置初始化

int32_t smem_trans_config_init(smem_trans_config_t *config);
参数/返回值 含义
config 初始化参数
返回值 成功返回0,其他为错误码

smem_trans_init

TRANS初始化

int32_t smem_trans_init(const smem_trans_config_t *config);
参数/返回值 含义
config TRANS初始化配置
返回值 成功返回0,失败返回错误码

smem_trans_uninit

TRANS退出

void smem_trans_uninit(uint32_t flags);
参数/返回值 含义
flags 预留参数

2. 创建/销毁TRANS实例

smem_trans_create

创建TRANS实例

smem_trans_t smem_trans_create(const char *storeUrl, const char *uniqueId, const smem_trans_config_t *config);
参数/返回值 含义
storeURL config store地址,格式支持 tcp://ip:portetcd://ip:portetcd://ip:port#instanceId(etcd 多集群隔离)
uniqueId 该TRANS实例的唯一标识,格式ip:port
config TRANS初始化配置
返回值 成功返回 TRANS 实例句柄,失败返回 NULL

smem_trans_destroy

销毁TRANS实例

void smem_trans_destroy(smem_trans_t handle, uint32_t flags);
参数/返回值 含义
handle TRANS对象handle
flags 预留参数

3. 注册/批量注册/注销内存

smem_trans_register_mem

注册内存

int32_t smem_trans_register_mem(smem_trans_t handle, void *address, size_t capacity, uint32_t flags);
参数/返回值 含义
handle TRANS对象handle
address 注册地址的起始地址指针
capacity 注册地址大小
flags 预留参数
返回值 成功返回0,其他为错误码

smem_trans_batch_register_mem

批量注册内存

int32_t smem_trans_batch_register_mem(smem_trans_t handle, void *addresses[], size_t capacities[], uint32_t count,
                                       uint32_t flags);
参数/返回值 含义
handle TRANS对象handle
addresses[] 批量注册地址的起始地址指针列表
capacities[] 批量注册地址大小列表
count 批量注册地址数量
flags 预留参数
返回值 成功返回0,其他为错误码

smem_trans_deregister_mem

注销内存

int32_t smem_trans_deregister_mem(smem_trans_t handle, void *address);
参数/返回值 含义
handle TRANS对象handle
address 注销地址的起始地址指针
返回值 成功返回0,其他为错误码

4. 同步读/写

smem_trans_read

同步读接口

int32_t smem_trans_read(smem_trans_t handle, void *localAddr, const char *remoteUniqueId,
                    const void *remoteAddr, size_t dataSize, uint32_t flags);
参数/返回值 含义
handle TRANS对象handle
localAddr 本地用于接收读取数据的起始地址指针
remoteUniqueId 远端TRANS实例对应的标识
remoteAddr 远端待读取数据的起始地址指针
dataSize 传输数据大小,单位字节
flags 标记位
返回值 成功返回0,其他为错误码

smem_trans_batch_read

批量同步读接口

int32_t smem_trans_batch_read(smem_trans_t handle, void *localAddrs[], const char *remoteUniqueId,
                          const void *remoteAddrs[], size_t dataSizes[], uint32_t batchSize, uint32_t flags);
参数/返回值 含义
handle TRANS对象handle
localAddrs[] 本地用于接收读取数据的起始地址指针列表
remoteUniqueId 远端TRANS实例对应的标识
remoteAddrs[] 批量远端待读取数据的起始地址指针列表
dataSizes[] 批量传输数据大小列表,单位字节
batchSize 批量读操作的任务数
flags 标记位
返回值 成功返回0,其他为错误码

smem_trans_write

同步写接口

int32_t smem_trans_write(smem_trans_t handle, const void *localAddr, const char *remoteUniqueId,
                              void *remoteAddr, size_t dataSize, uint32_t flags);
参数/返回值 含义
handle TRANS对象handle
localAddr 本地待写数据起始地址指针
remoteUniqueId 远端TRANS实例对应的标识
remoteAddr 远端存储数据起始地址指针
dataSize 传输数据大小,单位字节
flags 标记位
返回值 成功返回0,其他为错误码

smem_trans_batch_write

批量同步写接口

int32_t smem_trans_batch_write(smem_trans_t handle, const void *localAddrs[], const char *remoteUniqueId,
                                    void *remoteAddrs[], size_t dataSizes[], uint32_t batchSize, uint32_t flags);
参数/返回值 含义
handle TRANS对象handle
localAddrs[] 批量本地待写数据起始地址指针列表
remoteUniqueId 远端TRANS实例对应的标识
remoteAddrs[] 批量远端存储数据起始地址指针列表
dataSizes[] 批量传输数据大小列表,单位字节
batchSize 批量写操作的任务数
flags 标记位
返回值 成功返回0,其他为错误码

5. 异步读/写提交

smem_trans_read_submit

异步读提交接口

int32_t smem_trans_read_submit(smem_trans_t handle, void *localAddr, const char *remoteUniqueId,
                               const void *remoteAddr, size_t dataSize, void *stream, uint32_t flags);
参数/返回值 含义
handle TRANS对象handle
localAddr 本地用于接收读取数据的起始地址指针
remoteUniqueId 远端TRANS实例对应的标识
remoteAddr 远端待读取数据的起始地址指针
dataSize 传输数据大小,单位字节
stream 需要将任务提交到的aclrtStream
flags 标记位
返回值 成功返回0,其他为错误码

smem_trans_write_submit

异步写提交接口

int32_t smem_trans_write_submit(smem_trans_t handle, const void *localAddr, const char *remoteUniqueId,
                                void *remoteAddr, size_t dataSize, void *stream, uint32_t flags);
参数/返回值 含义
handle TRANS对象handle
localAddr 本地待写数据起始地址指针
remoteUniqueId 远端TRANS实例对应的标识
remoteAddr 远端存储数据起始地址指针
dataSize 传输数据大小
stream 需要将任务提交到的aclrtStream
返回值 成功返回0,其他为错误码

环境变量

环境变量 含义
LD_LIBRARY_PATH 动态链接库搜索路径
ASCEND_HOME_PATH cann包安装路径
VERSION 编译whl包版本