SDK release note

更新时间:
复制 MD 格式

PPU SDK v1.4.3-hotfix release notes

1. Main features and bug fixes

  • Adds support for VLLM 0.7.3 and SGLang 0.4.3, improving Deepseek-V3/R1 inference performance.

  • Initially optimized the Deepseek-V3/R1 MLA kernel (on single-node VLLM, compared to v1.4.2), delivering:

    • Average throughput increase of 27.69%

    • Average Time to First Token (TTFT) reduction of 8.14%

    • Average Time Per Output Token (TPOT) reduction of 29.99%

  • Enabled multi-node CUDA Graph functionality.

  • Fixed an error where torch.nn.functional.conv2d returned: "GET was unable to find an engine to execute this computation".

  • Fixed a memory leak in pccl send/recv calls that occurred in scenarios such as using MoE models or pipeline parallel for large model training and inference.

2. Known issues

  • The operator library has a corner case where Gemm computations using FP32 tensor cores may produce incorrect results. A fix is scheduled for the next release.

PPU SDK v1.4.2 release notes

1. Main features and bug fixes

  • Added support for Ubuntu 24.04.

  • Added support for VLLM 0.7.2 and SGLang 0.4.2, improving support for Deepseek-V3, Deepseek-R1, and Qwen2.5-Max.

  • Fixed a hang in the custom allreduce kernel that occurred when VLLM loaded LoRA with tensor parallelism enabled.

  • Fixed an issue preventing the PPU from functioning correctly in a container with the SYS_ADMIN permission.

2. Known issues

  • Computing library: In the operator library, a corner case in Gemm computations using FP32 tensor cores can produce incorrect results. A fix is planned for the next version.

  • The cross-node CUDA Graph feature has known issues in this version. A fix is planned for the next version.

PPU SDK v1.4.1 release notes

1. Main features and bug fixes

  • User-mode driver/runtime

    • Added basic texture support.

    • Fixed a hang that occurred when the HGGC_AUTO_DISPATCH_BARRIER environment variable was enabled.

    • Fixed a bug that prevented ppu-smi from displaying the process list for device 0 when using PPU SDK v1.4 with KMD driver versions earlier than v1.4.

  • Compute library

    • Added support for the following acsolver interfaces: Xgetrf, Xgetrs, Spotrf, Dpotrf, Spotrs, and Dpotrs.

    • Fixed an error in gemm computations where excessively large m-dimensions caused grid.y > 65536.

  • Communication library

    • Optimized allreduce performance for small, latency-sensitive scenarios on single-node systems. The ext-kernel plugin is now enabled by default.

    • Optimized the topo graph search logic on multi-node Zhenwu 810E clusters, fixing a performance regression for key operators caused by device id changes.

    • Enhanced the PcclStateMonitor feature to ensure it has no performance impact on operators when disabled.

    • Fixed a potential conflict between memory initialization during the send/recv preconnect phase and kernel execution.

    • pccl perf tools:

      • Added support for new operators, including scatter/gather/sendrecv/hypercube.

      • Added the -a parameter to select the statistical method for operator timing from AVG, MIN, or MAX.

      • Added support for NCCL_TESTS_SPLIT_MASK.

  • Image preprocessing

    • Added support for DALI 1.20 (CUDA 11.6 and earlier).

    • Added support for DALI 1.44 (CUDA 11.8 and later).

2. Known issues

  • Compute library: In certain corner cases, gemm computations using an FP32 tensor core may produce incorrect results. This issue is scheduled to be fixed in the next minor release.

PPU SDK v1.4 release notes

1. Version overview

1.1 Software stack

image

1.2 Core components

Component

Description

Firmware

PPU firmware

KMD

PPU kernel driver

UMD / HGGC

PPU user-mode driver and runtime

Compiler

PPU compiler toolchain

Acompute

PPU compute acceleration library

Acext

PPU quantization acceleration library

PCCL

PPU interconnection acceleration library

PPU SMI

PPU device management tool

PPU DCGM

PPU online monitoring tool

Asight System

PPU performance analysis tool

Asight Compute

PPU performance analysis tool

PPU GDB

PPU debugging tool

PPU MemCheck

PPU Sanitizer tool

PPU hgobjdump

PPU device binary tool

CUDA SDK Wrapper

CUDA API compatibility library

1.3 Key features

1.3.1 Firmware
  • Supports installation from binary packages (RPM or DEB).

  • Supports dynamic power management. By default, the PPU firmware dynamically adjusts the core frequency (from 200 MHz to the maximum operating frequency) and voltage based on real-time workload, temperature, and power consumption.

  • Supports PPU frequency locking. For more information, see Device Management Tool PPU-SMI.

  • Supports secure firmware signing and a dual-backup mechanism to ensure firmware integrity and reliability.

  • Supports firmware upgrades for the power management chip.

  • Supports out-of-band management through a Baseboard Management Controller (BMC), including device status monitoring and out-of-band firmware upgrades.

1.3.2 Kernel driver
  • Supports installation from binary packages (RPM or DEB) and a runfile package.

  • The kernel driver is decoupled from the PPU SDK, allowing versions released after v1.0 to be used with any PPU SDK version.

  • Supports flexible machine configurations, including single-node single-card, single-node 8-card/16-card (ICN interconnect), multi-node multi-card (ICN interconnect), and multi-node multi-card (GDR). Using the GDR feature requires that thealixpu-peermem kernel module, which is released with the PPU kernel driver, is installed.

  • Supports PPU fault reporting and handling.

  • Includes anauto-reset feature that automatically resets the PPU device upon detecting akill overtime orcp invalid cmd error, enabling automatic recovery. This feature is enabled by default, and its status can be queried or disabled using ppu-smi.

  • Supports Multi-Pipe Service (MPS), which you can enable or disable by runningppudbg --config_submit_mode 1/0.

  • Supports mixed-workload scenarios with both small and large models in MPS mode.

  • Supports the collection of NVML Generic Performance Metrics (GPM), including SM utilization, SM occupancy, tensor core utilization, graphics memory bandwidth utilization, PCIe read/write speeds, and ICN link read/write speeds.

  • Supports multi-instance GPU (MIG), allowing a single PPU to be partitioned into up to 8 instances. Note that the ICN interconnect feature cannot be used when MIG is enabled.

  • Supports full-card passthrough for virtualization. You can unbind the PPU driver on the host machine and pass the entire device through to a virtual machine. When doing so, you must ensure proper ICN isolation between different virtual machines.

  • Supports SR-IOV virtualization, allowing a single PPU to be divided into up to 8 Virtual Functions (VFs). Note that when SR-IOV and ICN interconnect are enabled simultaneously, only one VF can access the ICN interconnect.

  • Supports hot upgrade of the PPU driver on the host machine in SR-IOV virtualization mode, allowing driver updates without interrupting workloads in the virtual machines.

  • Supports hot migration of virtual machines in SR-IOV virtualization mode. This feature is limited to single-card configurations and does not yet support migration over ICN interconnect.

  • Adds official support for single-node 16-card Zhenwu 810E configurations and optimizes the default PPU device ordering (sorted from the rear of the chassis).

  • Adds GPM collection for L1/L2 cache hit rates, which are queryable via the DCGM tool.

  • Fixes high CPU usage when collecting PPU utilization metrics with driver versions v1.2 or v1.2.1.

  • Fixes an issue where creating a new CUDA context during a switch in MPS mixed-workload mode could cause the application to hang.

  • Fixes a system crash that could occur when a PPU device reset and GPM metric monitoring happened simultaneously.

  • Fixes an issue where frequent binding and unbinding of a PPU device in RUND scenarios could lead to MCU timeouts or cause the card to become unresponsive.

  • Adjusts the logical numbering scheme for 16-card Zhenwu 810E devices to improve interconnect performance.

  • Optimizes driver loading time and memory footprint.

  • Adds support for querying the status of the MPS mixed-workload mode.

  • Adds support for querying XID error information.

  • Adds support for querying, enabling, and disabling GPM status.

  • Fixes a discrepancy between process utilization and full-card utilization data reported by the ppu-smi tool.

  • Fixes a discrepancy between process graphics memory usage and full-card graphics memory usage reported by the ppu-smi tool.

  • Fixes an issue that could randomly cause system hangs when using unified memory (cudaMallocManaged).

  • Fixes an issue where the ECC page retirement pending flag was not cleared during DCGM stress tests.

  • Disables XID error reporting for HBM parity errors.

1.3.3 User-mode driver and runtime
  • Provides compatibility with most CUDA Runtime APIs (cudaXXX) and CUDA Driver APIs (cuXXX).

  • Adds more detailed error logging for XID 896 errors to simplify debugging.

  • Optimized the performance of cudaMemcpy and cudaMemset for 2D and 3D operations.

  • Fixes an intermittenthgpti activity record cycle invalid error that could occur duringasys profiling.

  • Supports a circular print buffer to enhance the printf functionality in CUDA device code.

  • Supports the stream memory operation v2 API.

  • Supports APIs for managing edge data in graphs.

  • Supports APIs for batch memory op nodes in graph management.

  • Fixed an issue where the qwen2-72b large model produced garbled inference output on the Zhenwu 810E platform when vllm cuda graph was enabled.

  • Fixes a graphics memory leak that occurred during FCN model training.

  • Fixes an issue that caused intermittent failures in DCGM stress tests on Zhenwu 810E platforms.

  • Fixes a core dump issue caused by LLVM symbol conflicts that could occur after a CUDA launch error.

  • Fixes an error that occurred when running model inference using the Python multiprocessing module.

1.3.4 Compiler
  • Provides a Clang/LLVM-based compiler designed for the PPU architecture. It supports a mixed host/device programming style and is fully compatible with the CUDA C/C++ language specifications.

  • Offers a rich set of compilation modules, allowing developers to flexibly create compilation workflows through API calls and easily integrate Just-In-Time (JIT) compilation capabilities.

  • Includes a comprehensive suite of development and debugging tools, such as hgobjdump, memcheck, ppu-gdb, and a sanitizer library, to simplify algorithm debugging.

  • Supports system-level reserved shared memory.

  • Supports Triton versions 2.3.x and 3.0.x.

  • Supports GCC host compiler versions from 5.5 to 12.3.

  • ppu-gdb:

    • Optimizes the display length of kernel managed names in layout assembly mode.

    • Supports conditional breakpoints on internal variables, such as blockIdx, and registers.

    • Supports the gdb python extension for Python versions 3.6 to 3.10.

    • Supports multiple trigger behaviors for device kernel breakpoints: single-trigger and multi-trigger. The default is single-trigger.

1.3.5 Acceleration libraries

Compute acceleration library

  • Proprietary compute libraries include acdnn, acblas, acfft, acsolver, and acrand.

    • acdnn supports the following operators:

      Conv

      BatchNorm

      Pooling

      Softmax

      Activation

      CTCLoss

      Dropout

      LRN

      LSTM

      GRU

      MultiHeadAttn

      Tensor Ops

      SpatialTransform

      Backend fusion

    • acblas supports the following operators:

      Level-1 operators

      Gemv

      Gemm

      Matmul + epilogue

      MatrixTransform

      trsm

      getrfBatched

      getrsBatched

      geqrfBatched

      gelsBatched

    • acfft supports R2C/C2R/C2C/D2Z/Z2Z + FFT/iFFT transforms.

    • acsolver supports LU decomposition/solve, Cholesky decomposition/solve, QR decomposition, and SVD decomposition (Jacobi method).

    • acrand supports:

      • Pseudo-random number generators: XORWOW, MRG32K3A, and PHILOX4_32_10.

      • Data distributions: Default, Uniform, Normal, and LogNormal.

    • acext quantization library supports:

      • Various kernel variants for A16W8/A16W4 and PerChannel/GroupWise.

      • Various kernel variants for A8W8 and PerChannel/PerToken.

      • Accelerated kernels for WeightonlyBatchedGemv with small batch sizes.

  • Key updates:

    • cutlass3: Adds support for the group GEMM persistent strategy.

    • Further improves FlashAttention performance on Zhenwu 810E by up to 85%.

    • acext: Adds support for a16w8 sub-channel quantization.

    • MoE: Adds support and optimizations for a16w4 quantization.

    • xformers: Fixes an infinity issue in attention mask scenarios.

    • RTC: Added support for group conv and gemv.

    • Add more pre-compiled instances to reduce the chance of RTC.

    • BLAS: Added support for rank-1 and rank-2 Level 2 APIs.

    • BLAS: Fixed incorrect gemm behavior when k = 0.

    • blas INT8 gemm: Now supports INT8 input and NN, TN, and TT configurations.

    • BLAS: Added support for cublasSgetriBatched.

    • conv: Improves performance by over 100x for wgrad scenarios with inputs larger than 4 GB.

    • conv: Fixes a 1D SpatialTF exception issue.

    • acFFT: Adds support for C2C, D2Z, and Z2Z, along with several new helper APIs.

    • solver: Adds support for Cholesky decomposition/solve, QR decomposition, and SVD decomposition (Jacobi method).

Interconnection acceleration library

  • Provides compatibility with most NCCL APIs (ncclXXX) and environment variables.

  • Supports standard communication operators such as AllReduce, AllGather, ReduceScatter, Broadcast, Reduce, Send, and Recv.

  • Supports multi-card communication within a single node using ICN, PCIE, and ShareMemory.

  • Supports multi-node communication using RDMA (GDR & non GDR) and Socket.

  • Supports ICN scale-out communication between 610 cards on multiple nodes.

  • The debugging feature for multi-node and multi-card systems is enhanced. It now supports automatic monitoring for ppu device kernel execution hangs, hierarchical communication status dumps, and triggering dumps through a configuration file.

  • Optimizes the synchronization overhead between network interface card (NIC) communication and ppu devices in multi-node scenarios, and supports the NCCL_GDR_COPY_SYNC and PCCL_GDR_USE_DEV_MEM_FOR_RX_TAIL features.

  • Adds support for newer NCCL versions, including new APIs, environment variables, and configurations:

    • Added API feature support: ncclCommInitRankConfig, ncclCommFinalize, ncclCommSplit, ncclCommRegister, ncclCommDeregister, ncclMemAlloc, ncclMemFree, and ncclCommGetAsyncError.

    • Added support for the following environment variables: NCCL_P2P_DIRECT_DISABLE, NCCL_NET_PLUGIN, NCCL_COMM_BLOCKING, NCCL_LOCAL_REGISTER, and NCCL_REPORT_CONNECT_PROGRESS.

    • Supports the new debug log subsystem fields: NCCL_PROFILE & NCCL_ALLOC & NCCL_DUMP;

    • Added support for the ncclRemoteError error field.

  • Other key features and fixes:

    • Optimizes the graph search logic for multi-node, multi-card environments to fix inconsistencies in proxyRank between the search and connect phases.

    • Optimized device memory usage in single-node, multi-GPU environments.

    • Optimized runtime host memory allocation and release in group mode.

    • Fixed a crash that occurred when using the FC algorithm in a fully interconnected, non-ICN scenario on a single node with four cards.

    • Fixed a failure to select the optimal path type when path types were inconsistent between nodes in a multi-node scenario.

  • PCCL tools:

    • pccl-perf:

      • Supports AllReduce, AllGather, ReduceScatter, All-to-All, Broadcast, and Reduce.

      • Optimizes event-based timing for device kernels.

    • p2pBandwidthAndLatencyPerf tool enhancements:

      • Supports ICN P2P interconnect bandwidth and latency performance evaluation for products like Zhenwu 810E in various multi-card interconnect topologies.

      • Supports batch output of bandwidth and latency data for all read and write modes, similar to nv p2p perf bench.

      • Supports displaying the p2p bandwidth performance ratio matrix.

      • Supports specifying a device subset for peer-to-peer (p2p) performance benchmarks.

      • Fixed a performance issue with data reads in bidirectional CE mode.

    • PCCL check tools:

      • Supports functional readiness checks for products like Zhenwu 810E in multi-card or multi-node, multi-card scenarios.

      • Adds a check to verify the 16 x Zhenwu 810E interconnect topology.

      • Added a check to verify the ICN link speed.

      • Added a validity check for the acsCtrl configuration.

1.3.6 Hardware-accelerated video and image codecs

Compatible with the NVIDIA Video Codec SDK (including cuvid decode, nvenc, and nvjpeg) and NVIDIA Performance Primitives (NPP) for 2D images, enabling out-of-the-box hardware acceleration for frameworks like FFmpeg, OpenCV, DALI, and PyTorch without requiring code modifications.

Video decode

  • Supports NVIDIA cuvid decoder.

  • Codecs:

    • HEVC (H.265) - ITU-T Rec. H.265 (04/2013), ISO/IEC 23008-2

      • Main Profile, Level 5.1, High Tier

      • Main10 Profile, Level 5.1, High Tier

      • Main Still Profile

    • VP9 - vp9-bitstream-specification-v0.6-20160331-draft

      • Profile 0, 8-bit

      • Profile 2, 10-bit

    • AVC (H.264) - ITU-T Rec. H.264 (03/2010) / ISO/IEC 14496-10

      • Main Profile, levels 1 - 5.2

      • High Profile, levels 1 - 5.2

      • High 10 Profile, levels 1 - 5.2

      • Baseline Profile, levels 1 - 5.2

    • AV1 Bitstream & Decoding Process Specification Version 1.0.0 with Errata 1

      • Main Profile, Level 5.1

    • AVS2

  • Resolution up to 8192x8192.

  • Up to 192 FHD streams.

Video encode

  • Supports nvenc.

  • Codecs:

    • AVC (H.264): Spec Version 12:ISO/IEC 14496-10 / ITU-T Rec. H.264 (03/2010)

      • Baseline Profile, levels 1 – 5.2

      • Main Profile, levels 1 - 5.2

      • High Profile, levels 1 – 5.2

      • High 10 Profile, levels 1 - 5.2

    • HEVC (H.265): ITU-T Rec. H.265 (04/2013), ISO/IEC 23008-2

      • Main Profile, Level 5.1, High Tier

      • Main10 profile, Level 5.1, High Tier

      • Main Still Profile

    • AV1 Bitstream Specification Version 1.0.0 with Errata 1

      • Main Profile, Level 5.1

  • Resolution up to 4K.

  • Supports RGB input format (converted to YUV420 via inlinePP).

  • Supports crop, scale, and rotate with inlinePP.

  • Up to 32 FHD streams.

JPEG

  • Supports nvjpeg decoder and encoder.

  • Resolution up to 32Kx32K.

  • Supports RGB format input and output with inlinePP.

  • Supports crop, scale, and rotate with inlinePP.

  • Up to 960 FPS at UHD resolution.

Image processing

  • Supports NVIDIA Performance Primitives (NPP) for 2D images.

1.3.7 Software tools
  • The following PPU management and monitoring tools are provided for large-scale cloud cluster monitoring and can be integrated into existing operations and maintenance systems:

    • The PPU device management tool ppu-smi, which is similar to nvidia-smi. For details, see Device Management Tool PPU-SMI.

    • New features in ppu-smi v1.4 include:

      • Adds support for querying descriptions of XID error codes.

      • Added a description of how to query the status of performance counters.

      • Added a description for the gpm subcommand to query and set GPM.

      • Added a description for querying the burstable mode.

      • Added a description of how to query the product architecture and minor number.

      • Added a description for setting and querying MPS mode.

    • The data center management and monitoring tool PPU DCGM, which is similar to NVIDIA DCGM.

    • New features in DCGM v1.4 include:

      • Supports field IDs for ICN per-link send/receive rates.

      • Updated the field ID support list

    • The hgml library, which is similar to NVIDIA NVML.

  • The PPU performance analysis tools Asight System and Asight Compute (similar to NVIDIA Nsight Systems and Nsight Compute) are available for performance analysis of single-node and multi-node training and inference scenarios.

    • Asight System is a low-overhead, system-level performance analysis tool that collects various system events, CPU and PPU activities, API execution times, call stacks, NVTX ranges, and correlations between CPU/PPU activities. It provides a unified visualization in the Timeline View, allowing developers to easily analyze CPU/PPU workloads and their relationships, identify performance bottlenecks, and ensure coordinated operation and maximum parallelism between the CPU and PPU. For details, see Performance Analysis Suite Asight Systems.

    • New features in Asight System v1.4 include:

      • Improves UI styles and layout, with more tab styles for switching views.

      • asys lets you set the call stack depth for CPU profiling and Python profiling.

      • asys supports collecting trace data from specific processes of an application.

      • asys collects basic information, such as PPU frequency and temperature.

      • asys supports a shorter sampling period for collecting CPU call stack information.

      • asys stats supports exporting statistics and traces for HGGC kernel grid blocks

      • asys collects HGGC Python backtrace call stacks.

      • asys supports collecting memory Python backtraces.

      • asys Python functions trace collects all threads in a Python process.

      • Timeline View supports custom colors for HGTX.

      • In Timeline View, the time percentage of PPU nodes updates after filtering.

      • Timeline View displays metrics for RDMA NICs.

      • Timeline View displays PPU Activity dependencies

      • The Timeline View displays HGGC Graph information separately.

      • Timeline View lets you mark the timeline.

      • Timeline View displays different types of Video timelines in different colors.

      • The HGGC Launch API now supports display by kernel name in Timeline View.

      • You can close a report tab while it is opening.

      • Added a tile view to the Events View and enhanced autofill for search history.

      • Function View now includes flame graphs and icicle graphs.

      • HGTX range aggregation supports specifying a list of processes and threads.

    • Asight Compute is a kernel performance analysis tool that collects PPU hardware performance counters and presents them as metrics. The GUI offers various perspectives on these metrics for in-depth kernel analysis and optimization. For details, see Kernel Analyzer Asight Compute.

    • New features in Asight Compute v1.4 include:

      • Adds topology graphs for 16-card and 8-card Zhenwu 810E configurations.

      • The Source page displays source markers. It also collects and displays execution information for kernel assembly instructions, including Instructions Executed and Thread Instructions Executed.

      • Metrics fixes and stability enhancements

  • Provides the PPU debugging tool PPU-GDB, which allows simultaneous debugging of both GPU and CPU code within the same application.

  • Provides PPU Memcheck, a tool suite for functional correctness checks. The suite includes a series of checkers, such as memcheck, initcheck, synccheck, and racecheck.

  • Provides the PPU binary tool hgobjdump, for extracting device-related information from binaries.

1.4 Supported operating systems

Category

Operating system

Architecture

Kernel version

GCC

Ubuntu

Ubuntu 20.04 LTS

x86_64

5.4.0-131-generic (GA)

9.5.0

5.4.0-92-generic

9.5.0

Ubuntu 18.04 LTS

4.15.0-112-generic (GA)

7.5.0

4.18.0-15-generic

7.5.0

CentOS

CentOS 8.2

5.10.134-007.ali5000.al8.x86_64

8.5.0

Alios

Alios 7U2

5.10.112-005.ali5000.alios7.x86_64

10.2.1

5.10.84-004.ali5000.alios7.x86_6

10.2.1

alippu-driver-4.19.91-014.kangaroo.alios7.x86_64

10.2.1

Afa3

ALinux 3

5.10.134-12.2.al8.x86_64

10.2.1

5.10.134-13.al8.x86_64

10.2.1

1.5 SDK version compatibility

  • Version 1.4 is backward compatible with the kmd and mcu_fw from v1.2 and v1.3.

  • Zhenwu 810E requires mcu_fw version 1.2.1 or later.

2. CUDA ecosystem compatibility

2.1 Introduction

You can develop applications for the PPU platform using the PPU SDK API or by writing them in the CUDA language. To run a CUDA application on a PPU, you must recompile it with the PPU compiler. The following diagram compares the compilation and execution processes for a CUDA application on a PPU and a GPU.

CUDA ecosystem compatibility approach: The platform uses automatic code generation to create a CUDA SDK Wrapper. This wrapper maintains compatibility across different versions of CUDA APIs, enabling you to recompile your CUDA application with the PPU compiler and run it on the PPU.

This approach provides source-level compatibility between the PPU and the GPU. However, PPU binaries and GPU binaries are incompatible.

image

2.2 CUDA API compatibility

PPU SDK v1.4 supports CUDA APIs up to version 12.6.0. However, due to differences in hardware architecture, this compatibility is primarily for deep learning workloads. The table below lists the supported versions. For more information on CUDA compatibility, see CUDA compatibility.

CUDA version

11.1

11.2

11.3

11.4

11.5

11.6

11.7

11.8

12.1

12.2

12.3

12.4

12.5

12.6

2.3 Supported open-source frameworks and libraries

2.3.1 Supported open-source frameworks and libraries

Framework/library

Version

Status

Release

PyTorch

2.4

v1.4 Release

PyTorch

2.3

v1.3 Release

PyTorch

2.0, 2.1, 2.1.2, 2.2

v1.2 Release

PyTorch

1.7, 1.8, 1.9, 1.10, 1.11, 1.12, 1.13

v1.0 Release

TensorFlow

2.16.1, 2.17.0, 2.6.3, 2.7.0, 2.8.0

v1.4 Release

TensorFlow

2.12, 2.13.1, 2.14.1

v1.2 Release

TensorFlow

1.15, 2.4, 2.6, 2.7, 2.8, 2.10, 2.11

v1.0 Release

TensorRT

0.1.0.8.0

v1.4 Release

TensorRT-LLM

0.1.0.8.0

v1.4 Release

tensorflow_gpu

1.15.5

v1.4 Release

PaddlePaddle

2.3.2

v1.0 Release

OneFlow

0.7.0

v1.0 Release

MXNet

1.8.0

v1.0 Release

TorchACC

1.12

v1.0 Release

HIE-ALLSPARK

1.0.0

v1.0 Release

BladeDISC

0.21

v1.0 Release

rtp-llm

0.2.0

v1.4 Release

Triton Inference Server

2.21.0

v1.0 Release

Megatron-Core

0.8.0

v1.4 Release

Megatron-Core

0.7.0

v1.3 Release

Megatron-Core

0.5.0

v1.2 Release

DeepSpeed-Megatron

0.2.0 (d65921c)

v1.2 Release

DeepSpeed

0.15.2

v1.4 Release

DeepSpeed

0.14.4

v1.3 Release

DeepSpeed

0.10.0, 0.12.3, 0.13.1

v1.2 Release

DeepSpeed

0.8.0

v1.0 Release

Horovod

0.24.2

v1.0 Release

vLLM

0.5.2, 0.6.x

v1.4 Release

vLLM

0.4.2

v1.3 Release

vLLM

0.3.0, 0.3.1, 0.3.2, 0.3.3

v1.2 Release

vLLM

0.2.6, 0.2.7

v1.1.1 Release

vLLM(*)

0.4.1, 0.4.2, 0.4.3, 0.5.0, 0.5.1, 0.5.2, 0.5.3

v1.4 Release

lmdeploy

0.5.3, 0.6.3

v1.4 Release

lmdeploy

0.3.0, 0.4.2

v1.3 Release

lmdeploy(*)

0.3.0, 0.4.0, 0.4.1, 0.4.2, 0.5.0, 0.5.1, 0.5.2, 0.5.3

v1.4 Release

ONNX Runtime

1.19.2

v1.4 Release

ONNX Runtime

1.17.1, 1.18.0

v1.3 Release

ONNX Runtime

1.15.1

v1.2 Release

FasterTransformer

5.3

v1.1 Release

Transformer Engine

1.11

v1.4 Release

Transformer Engine

1.4

v1.2 Release

Transformer Engine

1.5

v1.2.1 Release

transformer_engine(*)

1.7, 1.8, 1.9

v1.4 Release

transformer_engine_torch(*)

1.8, 1.9

v1.4 Release

PyTorch3D(*)

0.7.6, 0.7.7

v1.4 Release

Triton

2.0, 2.1.1, 2.2.0, 3.0.0

v1.4 Release

Nemo

1.13.0

v1.2 Release

TVM

0.8.0

v1.0 Release

HugeCTR

3.1

v1.0 Release

pytorch-quantization

2.1.2

v1.0 Release

DALI

1.20.0

v1.0 Release

CuPy

12.0

v1.2 Release

PyTorch3D

0.7.6

v1.2.1 Release

PyTorch3D(*)

0.7.6, 0.7.7

v1.4 Release

NVTabular

0.7.1

v1.0 Release

RMM

23.2.0a0

v1.0 Release

cuDF

23.2.0a0

v1.0 Release

torch_xla

2.2

v1.2 Release

torch_xla

2.3

v1.3 Release

torch

1.13.1, 2.0.1, 2.1.0, 2.1.2, 2.2.0, 2.2.1, 2.3.0, 2.3.1, 2.4.0

v1.4 Release

torchao(*)

0.2.0, 0.3.0, 0.4.0

v1.4 Release

TorchMetrics

1.0.1

v1.0 Release

TorchMetrics(*)

1.4.0

v1.4 Release

TorchRL(*)

0.5.0

v1.4 Release

torchaudio

2.2.1

v1.3 Release

torchaudio(*)

2.0.2, 2.1.0, 2.1.2, 2.2.0, 2.2.1, 2.3.0, 2.3.1, 2.4.0

v1.4 Release

torchvision

0.17.1

v1.3 Release

0.13.0

v1.0 Release

torchvision(*)

0.15.2, 0.16.0, 0.16.2, 0.17.0, 0.17.1, 0.18.0, 0.18.1, 0.19.0

v1.4 Release

torchdata

0.6.1

v1.3 Release

torchdata(*)

0.6.1, 0.7.0, 0.7.1, 0.8.0

v1.4 Release

torchtext

0.17.1

v1.3 Release

torchtext(*)

0.15.2, 0.16.0, 0.16.2, 0.17.0, 0.17.1, 0.18.0

v1.4 Release

MMCV

1.5

v1.0 Release

MMCV(*)

2.2.0

v1.4 Release

Ray

2.6.1, 2.8.0

v1.2 Release

xformers(*)

0.0.21, 0.0.22, 0.0.23, 0.0.24, 0.0.25, 0.0.26, 0.0.27

v1.4 Release

xformers

0.0.21, 0.0.22, 0.0.25, 0.0.27

v1.4 Release

CUTLASS

2.4, 3.3

v1.2 Release

CUTLASS(*)

3.4.1, 3.5

v1.4 Release

FlashAttention

1.0.5, 2.0.9, 2.4.2, 2.5.6, 2.5.7

v1.4 Release

FlashAttention(*)

2.4.2, 2.4.3, 2.5.0, 2.5.1, 2.5.2, 2.5.3, 2.5.4, 2.5.5, 2.5.6, 2.5.7, 2.5.8, 2.5.9, 2.6.0, 2.6.1, 2.6.2, 2.6.3

v1.4 Release

vllm-flashattention

2.6.2

v1.4 Release

flashinfer

0.1.6

v1.4 Release

flashinfer(*)

0.1.0, 0.1.1, 0.1.2

v1.4 Release

Text Embeddings Inference

1.5.0

v1.4 Release

Apex

23.08

v1.2 Release

Apex

24.04.01

v1.3 Release

Apex(*)

24.04

v1.4 Release

auto-gptq(*)

0.7.1

v1.4 Release

peft

0.3.0

v1.0 Release

bitsandbytes

0.43

v1.2 Release

bitsandbytes

0.43.1

v1.3 Release

bitsandbytes(*)

0.40.0, 0.41.0, 0.42.0, 0.43.0, 0.43.1

v1.4 Release

byte_flux(*)

1.0.2, 1.0.3

v1.4 Release

CuPy(*)

13.1.0

v1.4 Release

Faiss(*)

1.7.3, 1.7.4, 1.8.0

v1.4 Release

grouped_gemm(*)

1.1.4

v1.4 Release

mamba-ssm(*)

2.1.0, 2.2.0, 2.2.1, 2.2.2

v1.4 Release

nvidia-dali-cuda110(*)

1.20.0

v1.4 Release

nvidia-dali-cuda120(*)

1.20.0

v1.4 Release

onnxruntime-gpu(*)

1.15.1, 1.16.3, 1.17.1, 1.17.3, 1.18.0, 1.18.1, 1.19.0

v1.4 Release

FBGEMM

0.7.0

v1.4 Release

onnxruntime-training

1.15.1, 1.17.1, 1.18.0, 1.19.0, 1.19.2

v1.4 Release

transformers(*)

4.30.2, 4.31.0, 4.32.1, 4.33.2, 4.34.1, 4.35.2, 4.36.2, 4.37.2, 4.38.1, 4.38.2, 4.39.3, 4.40.2, 4.41.2, 4.42.4, 4.43.0, 4.43.3

v1.4 Release

Description:

  • PyTorch support:

    • PyTorch 2.1 and earlier versions are based on NGC.

    • PyTorch 2.1.2 and later versions are based on the official community releases of torch.

  • TensorFlow support:

  • Items marked with an asterisk (*), such as FlashAttention(*) and cutlass(*), fully match their respective community release versions. They provide only feature support and do not include performance optimization.

  • Most other open source frameworks and libraries are based on their community release versions, with a few exceptions that are based on NGC. For details, refer to the user guide for each specific framework or library.

  • For these open source frameworks and libraries, the PPU SDK supports compilation, basic runtime validation, and unit testing. However, due to resource constraints, the v1.4 release does not resolve all issues discovered during testing. For a list of outstanding issues, see the known issues section.

2.3.2 Open source framework compatibility

Framework

Version

Test type

Pass rate

PyTorch

1.7

unit test

98.5%

PyTorch

1.8

unit test

97.6%

PyTorch

1.9

unit test

93.5%

PyTorch

1.10

unit test

94.7%

PyTorch

1.11

unit test

92.9%

PyTorch

1.12

unit test

95.2%

PyTorch

2.1

unit test

95.7%

PyTorch

2.3

unit test

96.9%

PyTorch

2.4

unit test

97.6%

TensorFlow

1.15

unit test

97.6%

TensorFlow

2.7

unit test

89%

TensorFlow

2.8

unit test

91.3%

TensorFlow

2.12

unit test

81.3%

TensorFlow

2.14

unit test

83.6%

TensorFlow

2.16

unit test

83.8%

Megatron-Core

0.8.0

unit test

99.7%

Megatron-Core

0.7.0

unit test

97.5%

DeepSpeed

0.15.2

unit test

93.1%

DeepSpeed

0.14.4

unit test

89%

Horovod

0.24.2

E2E example

100%

VLLM

0.4.1

unit test

99%

VLLM

0.4.2

unit test

99%

VLLM

0.4.3

unit test

99.98%

VLLM

0.5.0

unit test

100%

VLLM

0.5.1

unit test

99.9%

VLLM

0.5.2

unit test

99.9%

VLLM

0.5.3

unit test

100%

VLLM

0.6.0

unit test

99.3%

lmdeploy

0.3.0

E2E example

100%

lmdeploy

0.4.0

unit test

99%

lmdeploy

0.4.1

unit test

98.5%

lmdeploy

0.4.2

unit test

97.7%

lmdeploy

0.5.0

unit test

99%

lmdeploy

0.5.1

unit test

100%

lmdeploy

0.5.2

unit test

97.9%

lmdeploy

0.5.3

unit test

98.5%

ONNX Runtime

1.19.2

unit test

94.9%

ONNX Runtime

1.18.0

unit test

90.0%

TransformerEngine

1.11

unit test

98.69%

TransformerEngine

1.5

unit test

93.7%

TransformerEngine

1.7

unit test

94.3%

TransformerEngine

1.8

unit test

95.2%

TransformerEngine

1.9

unit test

96.1%

rtp-llm

0.2.0

unit test

100%

torch-xla

2.3

E2E example

100%

xformers

0.0.27

unit test

99.9%

xformers

0.0.26

unit test

99.9%

xformers

0.0.26

unit test

99.9%

xformers

0.0.25

unit test

99.9%

xformers

0.0.24

unit test

99.9%

xformers

0.0.23

unit test

99.9%

xformers

0.0.22

unit test

99.8%

xformers

0.0.21

unit test

98%

vllm-flashattention

2.4.2

unit test

99%

vllm-flashattention

2.4.3

unit test

99%

vllm-flashattention

2.5.0

unit test

100%

vllm-flashattention

2.5.1

unit test

100%

vllm-flashattention

2.5.2

unit test

100%

vllm-flashattention

2.5.3

unit test

100%

vllm-flashattention

2.5.4

unit test

100%

vllm-flashattention

2.5.5

unit test

99.9%

vllm-flashattention

2.5.6

unit test

99.9%

vllm-flashattention

2.5.7

unit test

100%

vllm-flashattention

2.5.8

unit test

100%

vllm-flashattention

2.5.9

unit test

100%

vllm-flashattention

2.6.0

unit test

100%

vllm-flashattention

2.6.1

unit test

100%

vllm-flashattention

2.6.2

unit test

100%

vllm-flashattention

2.6.3

unit test

100%

flashinfer

0.1.0

unit test

97.9%

flashinfer

0.1.1

unit test

99%

flashinfer

0.1.2

unit test

99.9%

flashinfer

0.1.6

unit test

99.9%

text embedding inference

1.5.0

unit test

99%

Apex

24.04.01

unit test

91%

auto_gptq

0.7.1

unit test

94.3%

bitsandbytes

0.40.0

unit test

99.9%

bitsandbytes

0.41.0

unit test

99.9%

bitsandbytes

0.42.0

unit test

100%

bitsandbytes

0.43.0

unit test

100%

bitsandbytes

0.43.1

unit test

100%

byte-flux

1.0.2

unit test

92.1%

byte-flux

1.0.3

unit test

95.1%

cupy

13.1.0

unit test

95%

faiss

1.7.3

unit test

100%

faiss

1.7.4

unit test

100%

faiss

1.8.0

unit test

100%

grouped_gemm

1.1.4

unit test

92.5%

mamba_ssm

2.1.0

unit test

94.5%

mamba_ssm

2.2.0

unit test

93.9%

mamba_ssm

2.2.1

unit test

99%

mamba_ssm

2.2.2

unit test

100%

mmcv

2.2.0

unit test

99.9%

nvidia_dali_cuda110

1.20.0

unit test

94.7%

nvidia_dali_cuda120

1.20.0

unit test

94.7%

onnxruntime_gpu

1.15.1

unit test

92.1%

onnxruntime_gpu

1.16.3

unit test

97.4%

onnxruntime_gpu

1.17.1

unit test

91%

onnxruntime_gpu

1.17.3

unit test

93%

onnxruntime_gpu

1.18.0

unit test

92.4%

onnxruntime_gpu

1.18.1

unit test

95.7%

onnxruntime_gpu

1.19.0

unit test

96%

pytorch3d

0.7.6

unit test

91.2%

pytorch3d

0.7.7

unit test

93%

torchao

0.2.0

unit test

99.9%

torchao

0.3.0

unit test

99.9%

torchao

0.4.0

unit test

99.9%

torchaudio

2.0.2

unit test

91.2%

torchaudio

2.1.0

unit test

91.8%

torchaudio

2.1.2

unit test

92.7%

torchaudio

2.2.0

unit test

93%

torchaudio

2.2.1

unit test

99.9%

torchaudio

2.3.0

unit test

99.9%

torchaudio

2.3.1

unit test

99.9%

torchaudio

2.4.0

unit test

99.9%

torchaudio

2.0.2

unit test

91.2%

torchdata

0.6.1

unit test

100%

torchdata

0.7.0

unit test

100%

torchdata

0.7.1

unit test

100%

torchdata

0.8.0

unit test

100%

torchmetrics

1.4.0

unit test

95%

torchrl

0.5.0

unit test

93.9%

torchtext

0.15.2

unit test

96.9%

torchtext

0.16.0

unit test

97%

torchtext

0.16.2

unit test

97%

torchtext

0.17.0

unit test

96.8%

torchtext

0.17.1

unit test

98%

torchtext

0.18.0

unit test

98%

torchvision

0.15.2

unit test

99.9%

torchvision

0.16.0

unit test

99.9%

torchvision

0.16.2

unit test

97%

torchvision

0.17.0

unit test

100%

torchvision

0.17.1

unit test

100%

torchvision

0.18.0

unit test

98.9%

torchvision

0.18.1

unit test

99.9%

torchvision

0.19.0

unit test

99.9%

transformer_engine_torch

1.8

unit test

92.7%

transformer_engine_torch

1.9

unit test

93.4%

transformers

4.30.2

unit test

94%

transformers

4.31.0

unit test

92.1%

transformers

4.32.1

unit test

93.4%

transformers

4.33.2

unit test

93%

transformers

4.34.1

unit test

93%

transformers

4.35.2

unit test

92.7%

transformers

4.36.2

unit test

92.6%

transformers

4.37.2

unit test

94%

transformers

4.38.1

unit test

94%

transformers

4.38.2

unit test

94%

transformers

4.39.3

unit test

94%

transformers

4.40.2

unit test

95.2%

transformers

4.41.2

unit test

94.9%

transformers

4.42.4

unit test

96%

transformers

4.43.0

unit test

96.7%

transformers

4.43.3

unit test

98%

Known issues

Driver

  • For a list of unsupported CUDA APIs, see CUDA Compatibility.

  • When running multi-process video applications in single-VF mode with SRIOV virtualization, the device may occasionally become unresponsive. A fix is planned for the next release.

  • Concurrent use of ICN interconnect, SRIOV virtualization, and live migration is not supported.

Compiler

  • CUDA C++ extension APIs and inline PTX instructions related to Textures and Surfaces are not supported. Using these features causes a compilation error.

  • CUDA C++ extension APIs and inline PTX instructions related to Dynamic Parallelism are not supported. Using these features causes a compilation error.

  • For new instructions introduced in PTX versions above 7.6, some features may not be supported by the hardware architecture. This does not affect compilation but causes runtime errors.

  • Inline PTX ld/st instructions with the {.level::eviction_priority} and {.level::prefetch_size} modifiers are not supported. These modifiers are ignored and do not affect compilation or runtime.

  • Inline PTX instructions and operands related to cache eviction policies are not supported and will cause a compilation error.

  • The device code compilation flow is CUDA Device C++ -> LLVM (hgvm) IR -> Device Binary. This flow does not generate PTX-formatted output files. If your compilation (or codegen) process for other platforms relies on a PTX generation step, you must adapt your code.

  • While most CUDA MMA and related data movement PTX instructions are supported for specific data types (such as .u8/.s8/.tf32/.bf16/.f16) in dense MMA instructions, this may result in lower performance than using PPU-specific tensor core PTX instructions. If the performance of such a kernel is critical to your end-to-end workload, we recommend refactoring the kernel's algorithm. For more information, see the PPU Tensor Core PTX User Programming Manual and Algorithm Refactoring Guide.

Acceleration libraries

  • Performance: Performance is not yet optimized for a wide range of use cases.

  • acblas:

    • Only the APIs listed in CUDA cuBLAS Support Status are supported. More APIs are being added as needed.

    • Complex data types are not supported.

    • Gemm: FP32 Tensor Core is enabled by default. Due to differences in the order of computation, the numerical results do not fully match FP32 FMA, which causes the matrixMulCUBLAS sample to fail.

    • Gemv: Supports host pointer mode only.

    • BlasLt: Does not support specifying attributes such as algo or perf.

  • acdnn:

    • Only the APIs listed in CUDA cuDNN Support Status are supported. More APIs are being added as needed.

    • Conv: Does not support INT64 or BOOLEAN data types. Configurations with FP16 input and FP32 output are not supported.

    • 3DConv: This feature is not fully optimized and requires performance improvements.

    • depthwise: Performance requires improvement for some dgrad use cases.

    • BN: 1) Only alpha==1 and beta==0 parameters are supported. 2) The ACDNN_BATCHNORM_PER_ACTIVATION mode is not supported.

    • Pooling: The ACDNN_PROPAGATE_NAN option is not supported.

    • RNN: Only acdnnRNNBiasMode_t DOUBLE, FP16/FP32 data types, and the ACDNN_RNN_ALGO_STANDARD algorithm are supported.

    • Activation: The ACDNN_PROPAGATE_NAN option is not supported. The SWISH operator is not supported.

    • Softmax: The SoftmaxAlgorithm_t FAST algorithm is not supported.

    • TensorOp: acdnnReduceTensor does not support MUL_NO_ZEROS.

    • MultiHeadAttn: Only the forward operation is supported.

    • Backend: 1) Pre-processing fusion is not supported. 2) Fusion is limited to a maximum of four pointwise post-processing operations. 3) Only fp16, fp32, and bf16 data types are supported. 4) For fused pointwise operations, only alpha1 = 1 and alpha2 = 1 are supported.

Interconnect library

  • Collective operation performance: For optimal collective operation performance in TP 2/4/8 mode on a 16-node Zhenwu 810E server cluster, place devices according to your system's ICN topology.

  • Only NCCL netplugin v4 is supported.

  • Multi-node CUDA Graph is not yet supported.

  • Using different parameter streams on the same communicator is not yet supported.

  • Running multiple pccl communicators on the same PPU simultaneously can occasionally cause a deadlock. To mitigate this issue, avoid launching multiple pccl kernels on the same PPU device at the same time. Setting NCCL_MIN_NCHANNELS to 16 or less can also help prevent this problem.

Inference engine

  • Limited support for the int8 data type.

  • Partial support for ONNX models.

  • Python bindings offer partial API support. See the user guide for more details.

  • Support for dynamic shape is partial. For traditional models in production, dynamic shapes are primarily handled using a bucketing approach.

Hardware-accelerated video/image codecs

  • Video decode does not support raw nvdec mode.

  • Video decode does not support legacy formats such as MPEG1, MPEG2, MPEG4, VC1, and VP8.

  • JPEG does not support lossless encoding or the JPEG2000 format.

  • NPP currently supports only the Image Process interfaces, not the Signal Process interfaces.

Tools

Frameworks and models

Known issues for open source frameworks

Framework

Version

Known issues

PyTorch

2.4

  • Unit test failure categories:

    • Unsupported CUDA APIs.

    • Expected failures, including test cases that also fail on A100, tests with hardcoded NVIDIA binary names, and discrepancies caused by the hardware SFU.

    • Minor precision errors exceeding the test case threshold for individual tensor elements.

    • Runtime timeouts.

    • Existing known issues.

TensorFlow

2.16

  • Unit test failure categories:

    • Unsupported APIs in the cuSOLVER, cuFFT, cuSPARSE, and cuBLAS libraries.

    • Unsupported complex64 and complex128 precision formats.

    • The run can fail if a device is not found or the runtime environment has problems.

    • Unsupported algorithms, kernels, or CUDA APIs cause kernel launch failures and core dumps.

    • The run fails when the output does not match the expected value. This includes inexact string matches and precision errors.

Megatron-Core

0.8.0

  • Unit test failure categories:

    • BERT data preprocessing takes too long and times out.

    • Errors with jit_fuser require torch >= 2.3.

    • The test_grouped_mlp.py test, which repeatedly creates temp directories, requires the distributed environment to be initialized first.

DeepSpeed

0.15.2

  • Unit test failure categories:

    • An nccl_version not found in torch info error occurs. A fix is pending.

VLLM

0.6.3

  • VLLM uses the Marlin kernel by default for quantization acceleration in GPTQ, AWQ, W8A8, and WOQ. You can explicitly specify a quantization method (e.g., gptq_acext or awq_acext) to use VLLM's original quantization kernels. However, acext does not currently support quantization with act_order=True or GPTQ-Int8 quantized weights. This issue will be addressed in a future release.

  • The VLLM Marlin kernel implementation is highly hardware-dependent and designed for A100. After being ported to the PPU, its performance is lower than the GPU version. Performance optimizations are planned for a future release.

  • VLLM uses vllm-flash-attn, xformers, or flashinfer as the attention backend. The default vllm-flash-attn backend's performance is lower than the GPU version. Performance optimizations are planned for a future release.

  • The A8W8 quantization in VLLM is integrated with the acext library; performance requires ongoing optimization.

  • FP8 quantization is currently slow and is not yet adapted or optimized for the PPU. A support schedule has not been determined.

lmdeploy

0.5.3

  • Unit test failure categories:

    • cuBLAS does not support a specific CTA shape.

  • Known Issues:

    • In some scenarios, performance is lower than the GPU version and requires further optimization.

ONNX Runtime

1.19.2

  • Unit test failure categories:

    • For the unfused Attention backend, precision errors exist in TF32 mode due to acblas gemm. This is a low-priority issue with no scheduled fix.

    • Implementations using CUBIN kernels are not supported.

    • The FP8 precision format is not supported.

    • pccl does not currently support mixing different streams within a group call, causing TestDistributed::test_slice_rs_axis1 to fail during consecutive runs. The precision error for GQA (smooth_softmax=True) exceeds the threshold (this also fails on A100).

    • AzureEP is not supported (this also fails on A100).

    • Test case issue (this also fails on A100).

    • Network issues preventing access to huggingface.co.

TransformerEngine

1.11

  • Unit test failure categories:

    • The TE Context Parallelism UT test_fused_attn_with_cp.py::test_cp_with_flash_attention unit test fails when run with torch 2.1.0. We recommend using torch 2.1.2.

    • Failures exist in TE numeric unit tests.

    • cublasLt fused_attention is not supported.

    • Some test cases also fail on A100.

xformers

0.0.27

  • Unit test failure categories:

    • Some test cases are nondeterministic and may pass if the random seed is changed.

    • The mem_effi_compile operator is not supported (this also fails on A100).

    • In compatibility mode, the compiler uses fast math instructions for some cases, causing minor precision errors that exceed the threshold. This is expected behavior.

vllm-flashattention

2.6.2

  • Known Issues:

    • Performance is lower than the GPU version and requires further optimization.

flashinfer

0.1.6

  • Unit test failure categories:

    • Performance is lower than the GPU version and requires further optimization.

Text Embedding Inference

1.5.0

  • Categories of failed compatibility unit tests:

    • Unsupported HGGC features, such as cublasLtLoggerSetLevel.

    • Network connection failures, such as ConnectionFailed to huggingface.co.