Initialize
产品支持情况
|
产品 |
是否支持 |
|---|---|
|
|
√ |
|
|
√ |
|
|
x |
|
|
x |
|
|
x |
说明:针对
函数功能
初始化HIXL,在调用其他接口前需要先调用该接口。
函数原型
1
|
Status Initialize(const AscendString &local_engine, const std::map<AscendString, AscendString> &options) |
参数说明
|
参数名 |
输入/输出 |
描述 |
|---|---|---|
|
local_engine |
输入 |
HIXL标识,在所有参与建链的范围内需要确保唯一。
不建议配置为回环IP,在多个HIXL交互场景,回环IP容易冲突。 当设置host_port且host_port>0时代表当前HIXL作为Server端,需要对配置端口进行侦听。如果没设置host_port或者host_port<=0代表是Client,不启动侦听。 |
|
options |
输入 |
初始化参数值。具体请参考表1。 |
|
参数名 |
可选/必选 |
描述 |
|---|---|---|
|
OPTION_BUFFER_POOL |
可选 |
字符串取值"BufferPool"。 在需要使用中转buffer进行传输的场景下:
可使用此option配置中转内存池的大小,取值格式为"$BUFFER_NUM:$BUFFER_SIZE",系统默认会配置为"4:8(单位MB)",可以通过配置为"0:0"来关闭中转内存池,在有并发的场景下建议增大$BUFFER_NUM个数, 另外,所有使用的地方需要配置相同的值,中转传输模式的限制请参考TransferSync接口。 说明:如果未配置该参数,则存在如下约束。
|
|
OPTION_RDMA_TRAFFIC_CLASS |
可选 |
字符串取值"RdmaTrafficClass"。 用于配置RDMA网卡的traffic class。和环境变量HCCL_RDMA_TC功能,如同时配置,当前option优先级更高;未同时配置,以配置的一方为准。 取值范围为[0,255],且需要配置为4的整数倍,默认值为132。 |
|
OPTION_RDMA_SERVICE_LEVEL |
可选 |
字符串取值"RdmaServiceLevel"。 用于配置RDMA网卡的service level。和环境变量HCCL_RDMA_SL功能相同,如同时配置,当前option优先级更高;未同时配置,以配置的一方为准。 取值范围为[0, 7],默认值为4。 |
|
OPTION_GLOBAL_RESOURCE_CONFIG |
可选 |
字符串取值"GlobalResourceConfig",用于开启并配置全局资源配置。 对于Fabric Mem模式,该参数配置示例如下: {
"fabric_memory.max_capacity": "128", //虚拟内存池的大小。取值范围:(0, 1024]之间的整数,默认值:64,单位TB.
}
对于链路池机制,该参数配置示例如下: {
"channel_pool.max_channel": "10", //最大的链路个数。取值范围:(0, 512]之间的整数,默认值:512
"channel_pool.high_waterline": "0.3", //触发链路销毁的高水位,取值范围:(0,1)之间的小数,需要和channel_pool.low_waterline同时配置
"channel_pool.low_waterline": "0.1" //触发链路销毁的低水位,取值范围:(0,1)之间小数,并且小于高水位
}链路池工作时,实际依据链路个数判断是否进行销毁,如果当前链路个数已经达到高水位对应的链路个数,则选择(当前链路个数-低水位对应的链路个数 )条链路进行销毁(如存在正在传输的任务,则不会销毁),再建链。相关参数计算公式如下:
在上述配置示例中,按照计算公式,高水位对应的链路个数=3,低水位对应的链路个数=1。每次建链前会检查当前HIXL内的链路是否达到3,如果已经达到,选择(当前链路个数-1 )条链路进行销毁(如存在正在传输的任务,则不会销毁),再建链。 当启用链路池机制时,有如下注意事项:
|
|
OPTION_ENABLE_USE_FABRIC_MEM |
可选 |
字符串取值"EnableUseFabricMem"。
此option适用于需要使用HCCS进行D2RH、RH2D传输的场景。 说明:集群场景下,该参数在所有节点需要配置为相同的值。 仅支持 |
返回值
- SUCCESS:成功
- PARAM_INVALID:参数错误
- 其他:失败
异常处理
无