PCCL (pronounced "Pickle") is the PPU Collective Communication Library, providing high-performance collective and point-to-point communication for PPU accelerators. It supports Zhenwu PPU hardware through the T-Head SAIL SDK and HGGC runtime. The library supports all-reduce, all-gather, reduce-scatter, reduce, broadcast, all-to-all, gather, scatter, and send/receive operations for distributed deep learning and HPC workloads.
PCCL supports PCIe, ICNLink, and ICNSwitch for PPU interconnects, and RDMA networks or TCP/IP sockets for network communication. It works with single-process and multi-process applications, including those using MPI.
Additionally, PCCL provides PPU-specific optimizations. The optional ext-kernel plugin offers low-latency implementations for small messages. With LTOKI, PPU kernels can directly initiate DMA transfers for selected operations. PCCL also provides platform-specific features, such as communication algorithms, protocols, and enhanced debugging support.
For more information, see the PCCL Documentation.
- T-Head SAIL SDK installed on Linux (x86_64 or aarch64), including the HGGC compiler and runtime.
Build PCCL with T-Head SAIL SDK installed. Run these commands from the repository root:
export PPU_SDK=/usr/local/PPU_SDK # or your SDK path
source "$PPU_SDK/envsetup.sh"
./build.shIf your SDK is installed at a non-default path, replace /usr/local/PPU_SDK with the actual path before sourcing envsetup.sh.
For the full list of build options, run:
./build.sh --helpCommon options:
--rebuild Clean and rebuild from scratch
--verbose Show detailed compilation output
--build_type TYPE Build mode: rel_sym (default), rel, or dbg
--ppu_archs ARCHS Target PPU architectures (default: ppu_10,ppu_15)
--cpu_num N Number of parallel build jobs (default: auto)
--examples Also build examples after building the library
The build places libpccl.so in build/lib/ and public headers in build/include/.
For performance benchmarking and functional validation, use pccl-tests. With the T-Head SAIL SDK and PCCL environments configured, run:
git clone https://github.com/t-head/pccl-tests.git
cd pccl-tests
export PCCL_HOME=/path/to/pccl/build # or your PCCL installation directory
./build.sh
./build/all_reduce_perf -b 8 -e 256M -f 2 -g <ngpus>PCCL is derived from NVIDIA NCCL.
Copyright (c) 2015-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
Modifications Copyright (c) 2020-2026 T-Head (Shanghai) Semiconductor Co., Ltd. All rights reserved.
See LICENSE.txt and ThirdPartyNotices.txt for license details.