已合并
modify docs & bugfix #4730
Leewis创建于 19 天前
modify docs & bugfix #4730
已合并
共 8 个文件变更+27-9
| @@ -12,7 +12,7 @@ The software dependencies required for compiling this project are listed below. | |||
| 12 | - pip3 >= 20.3.0 | 12 | - pip3 >= 20.3.0 |
| 13 | - setuptools >= 45.0.0 | 13 | - setuptools >= 45.0.0 |
| 14 | - wheel >= 0.34.0 | 14 | - wheel >= 0.34.0 |
| 15 | -- gcc and g++: 7.3.0 to 13.3.x | 15 | +- gcc and g++: 7.3.0 to 14.2.x |
| 16 | - cmake >= 3.16.0 | 16 | - cmake >= 3.16.0 |
| 17 | - pkg-config >= 0.29.1 (for compiling rdma-core) | 17 | - pkg-config >= 0.29.1 (for compiling rdma-core) |
| 18 | - patch >= 2.7.0 (for applying patch files) | 18 | - patch >= 2.7.0 (for applying patch files) |
| @@ -52,13 +52,21 @@ HcclResult HcclCommDestroy(HcclComm comm) | |||
| 52 | ## 调用示例 | 52 | ## 调用示例 |
| 53 | 53 | ||
| 54 | ```c | 54 | ```c |
| 55 | +// 设备资源初始化 | ||
| 56 | +aclInit(NULL); | ||
| 55 | uint32_t rankSize = 2; | 57 | uint32_t rankSize = 2; |
| 56 | int32_t devices[rankSize] = {0, 1}; | 58 | int32_t devices[rankSize] = {0, 1}; |
| 57 | HcclComm comms[rankSize]; | 59 | HcclComm comms[rankSize]; |
| 60 | +// 指定集合通信操作使用的设备 | ||
| 61 | +for (uint32_t i = 0; i < rankSize; i++) { | ||
| 62 | + aclrtSetDevice(devices[i]); | ||
| 63 | +} | ||
| 58 | // 初始化通信域 | 64 | // 初始化通信域 |
| 59 | HcclCommInitAll(rankSize, devices, comms); | 65 | HcclCommInitAll(rankSize, devices, comms); |
| 60 | // 销毁通信域 | 66 | // 销毁通信域 |
| 61 | -for (uint32_t i = 0; i < rankSize; i++) { | 67 | +for (uint32_t i = 0; i < rankSize; i++) { |
| 62 | HcclCommDestroy(comms[i]); | 68 | HcclCommDestroy(comms[i]); |
| 63 | } | 69 | } |
| 70 | +// 设备资源去初始化 | ||
| 71 | +aclFinalize(); | ||
| 64 | ``` | 72 | ``` |
| @@ -49,13 +49,21 @@ HcclResult HcclCommInitAll(uint32_t ndev, int32_t* devices, HcclComm* comms) | |||
| 49 | ## 调用示例 | 49 | ## 调用示例 |
| 50 | 50 | ||
| 51 | ```c | 51 | ```c |
| 52 | +// 设备资源初始化 | ||
| 53 | +aclInit(NULL); | ||
| 52 | uint32_t rankSize = 2; | 54 | uint32_t rankSize = 2; |
| 53 | int32_t devices[rankSize] = {0, 1}; | 55 | int32_t devices[rankSize] = {0, 1}; |
| 54 | HcclComm comms[rankSize]; | 56 | HcclComm comms[rankSize]; |
| 57 | +// 指定集合通信操作使用的设备 | ||
| 58 | +for (uint32_t i = 0; i < rankSize; i++) { | ||
| 59 | + aclrtSetDevice(devices[i]); | ||
| 60 | +} | ||
| 55 | // 初始化通信域 | 61 | // 初始化通信域 |
| 56 | HcclCommInitAll(rankSize, devices, comms); | 62 | HcclCommInitAll(rankSize, devices, comms); |
| 57 | // 销毁通信域 | 63 | // 销毁通信域 |
| 58 | -for (uint32_t i = 0; i < rankSize; i++) { | 64 | +for (uint32_t i = 0; i < rankSize; i++) { |
| 59 | HcclCommDestroy(comms[i]); | 65 | HcclCommDestroy(comms[i]); |
| 60 | } | 66 | } |
| 67 | +// 设备资源去初始化 | ||
| 68 | +aclFinalize(); | ||
| 61 | ``` | 69 | ``` |
| @@ -33,6 +33,7 @@ typedef enum { | |||
| 33 | - COMM_PROTOCOL_ROCE | 33 | - COMM_PROTOCOL_ROCE |
| 34 | - COMM_PROTOCOL_UB_CTP | 34 | - COMM_PROTOCOL_UB_CTP |
| 35 | - COMM_ENGINE_AICPU_TS | 35 | - COMM_ENGINE_AICPU_TS |
| 36 | + - COMM_PROTOCOL_ROCE | ||
| 36 | - COMM_PROTOCOL_UBOE | 37 | - COMM_PROTOCOL_UBOE |
| 37 | - COMM_PROTOCOL_UB_CTP | 38 | - COMM_PROTOCOL_UB_CTP |
| 38 | - COMM_PROTOCOL_UB_MEM | 39 | - COMM_PROTOCOL_UB_MEM |
| @@ -12,7 +12,7 @@ | |||
| 12 | - pip3 >= 20.3.0 | 12 | - pip3 >= 20.3.0 |
| 13 | - setuptools >= 45.0.0 | 13 | - setuptools >= 45.0.0 |
| 14 | - wheel >= 0.34.0 | 14 | - wheel >= 0.34.0 |
| 15 | -- gcc & g++ : 7.3.0至13.3.x | 15 | +- gcc & g++ : 7.3.0至14.2.x |
| 16 | - cmake >= 3.16.0 | 16 | - cmake >= 3.16.0 |
| 17 | - pkg-config >= 0.29.1(用于编译rdma-core) | 17 | - pkg-config >= 0.29.1(用于编译rdma-core) |
| 18 | - patch >= 2.7.0(用于应用补丁文件) | 18 | - patch >= 2.7.0(用于应用补丁文件) |
| @@ -183,4 +183,4 @@ namespace ccu { | |||
| 183 | } // namespace ccu | 183 | } // namespace ccu |
| 184 | } // namespace AscendC | 184 | } // namespace AscendC |
| 185 | 185 | ||
| 186 | -#endif // CCU_API_HPP | 186 | +#endif // CCU_PRIMITIVES_HPP |
| @@ -178,8 +178,9 @@ HcclResult ZeroCopyAddressMgr::GetLocalIpc2RemoteAddr(u32 devicePhyId, void* rem | |||
| 178 | void* remoteAddrBase = reinterpret_cast<void*>(rangeIt->start); | 178 | void* remoteAddrBase = reinterpret_cast<void*>(rangeIt->start); |
| 179 | auto mapIt = addrMapping.find(remoteAddrBase); | 179 | auto mapIt = addrMapping.find(remoteAddrBase); |
| 180 | CHK_PRT_RET( | 180 | CHK_PRT_RET( |
| 181 | - rangeIt == addrRange.end(), | 181 | + mapIt == addrMapping.end(), |
| 182 | - HCCL_ERROR("[ZeroCopyAddressMgr][GetLocalIpc2RemoteAddr] dev[%u] addr %p not set", devicePhyId, remoteAddr), | 182 | + HCCL_ERROR( |
| 183 | + "[ZeroCopyAddressMgr][GetLocalIpc2RemoteAddr] dev[%u] baseAddr %p not mapped", devicePhyId, remoteAddrBase), | ||
| 183 | HCCL_E_PARA); | 184 | HCCL_E_PARA); |
| 184 | 185 | ||
| 185 | addr = mapIt->second; | 186 | addr = mapIt->second; |
| @@ -127,7 +127,7 @@ HcclResult IAicpuTsThread::SdmaCopy(uint64_t dstAddr, uint64_t srcAddr, uint64_t | |||
| 127 | { | 127 | { |
| 128 | // SDMA单个任务最大支持4GB的数据量,超过4GB需要分多次提交 | 128 | // SDMA单个任务最大支持4GB的数据量,超过4GB需要分多次提交 |
| 129 | // 为了避免不必要的依赖和复杂性,这里不直接使用DeviceCapacity中定义的SDMA_SEND_MAX_SIZE,而是直接使用4GB的值 | 129 | // 为了避免不必要的依赖和复杂性,这里不直接使用DeviceCapacity中定义的SDMA_SEND_MAX_SIZE,而是直接使用4GB的值 |
| 130 | - if (sizeByte > 0x100000000ULL) { | 130 | + if (sizeByte >= 0x100000000ULL) { |
| 131 | HCCL_ERROR("[%s] sizeByte [%llu] exceeds 4GB", __func__, (unsigned long long)sizeByte); | 131 | HCCL_ERROR("[%s] sizeByte [%llu] exceeds 4GB", __func__, (unsigned long long)sizeByte); |
| 132 | return HCCL_E_PARA; | 132 | return HCCL_E_PARA; |
| 133 | } | 133 | } |
| @@ -151,7 +151,7 @@ HcclResult IAicpuTsThread::SdmaReduce( | |||
| 151 | { | 151 | { |
| 152 | // SDMA单个任务最大支持4GB的数据量,超过4GB需要分多次提交 | 152 | // SDMA单个任务最大支持4GB的数据量,超过4GB需要分多次提交 |
| 153 | // 为了避免不必要的依赖和复杂性,这里不直接使用DeviceCapacity中定义的SDMA_SEND_MAX_SIZE,而是直接使用4GB的值 | 153 | // 为了避免不必要的依赖和复杂性,这里不直接使用DeviceCapacity中定义的SDMA_SEND_MAX_SIZE,而是直接使用4GB的值 |
| 154 | - if (sizeByte > 0x100000000ULL) { | 154 | + if (sizeByte >= 0x100000000ULL) { |
| 155 | HCCL_ERROR("[%s] sizeByte [%llu] exceeds 4GB", __func__, (unsigned long long)sizeByte); | 155 | HCCL_ERROR("[%s] sizeByte [%llu] exceeds 4GB", __func__, (unsigned long long)sizeByte); |
| 156 | return HCCL_E_PARA; | 156 | return HCCL_E_PARA; |
| 157 | } | 157 | } |