HiFloat社区
本页
内容
本页内容
  • HiFloat 低比特开源仿真工具(HiF8 / HiF4)
  • 一、工具组成
  • 二、HiFloat 技术定位
  • 三、适配性说明
  • 四、快速开始
  • 五、HiFloat8 使用流程(示例)
  • 六、HiFloat4 使用说明
  • 七、开源链接
  • 八、技术支持与联系

首页 > HiFloat社区 > 适配专区

适配专区

HiFloat 低比特开源仿真工具(HiF8 / HiF4)

HiFloat 低比特开源仿真工具是一套面向 AI 训练与推理的低比特浮点仿真工具,用于在不依赖真实硬件指令集的情况下,对低精度数据格式在深度学习模型中的数值行为与精度影响进行复现与评估。

 

该工具由华为技术有限公司捐赠,并通过GCC(全球计算联盟)进行开源发布,主要面向研究机构、算法团队与工程团队提供可复现的低精度仿真代码与示例。

 

目前 HiFloat8 与 HiFloat4 的源码均以 Apache-2.0 协议开源。

一、工具组成

HiFloat 仿真工具目前包含两个核心项目:

 

1. HiFloat8(HiF8)

-   8-bit 浮点格式仿真框架\

-   支持 NVIDIA CUDA GPU 与 Huawei Ascend NPU 两类后端\

-   提供 pseudo-quantization kernel\

-   提供线性层等典型算子仿真示例\

-   适用于训练与推理阶段的低精度数值模拟

 

仓库地址:https://github.com/global-computing-consortium/HiFloat8

 

2. HiFloat4(HiF4)

-   4-bit 块浮点(block floating point)仿真框架\

-   适用于大模型推理场景\

-   仓库包含 GPU 与 NPU 两条实现路径:

    -   hif4_gpu\

    -   hifx4_npu

 

仓库地址:https://github.com/global-computing-consortium/HiFloat4

二、HiFloat 技术定位

HiFloat 系列数据格式面向低比特 AI计算场景,目标是在保持可接受模型精度的前提下:

 

-   降低存储占用

-   降低带宽消耗

-   降低计算能耗

-   提升推理吞吐率

 

HiFloat8 侧重训练与推理通用性;

HiFloat4 侧重大模型推理效率与硬件面积/功耗优化。

 

-   低精度训练/推理可行性验证

-   量化算法对比实验

-   硬件前期验证与算子级精度分析

-   赛事与评测场景下的统一仿真基线

三、适配性说明

1. 后端支持

 

HiFloat8:

- NVIDIA CUDA GPU\

- Huawei Ascend NPU

 

HiFloat4:

- GPU 实现路径

- NPU 实现路径

 

2. 典型应用场景

 

-   Transformer / LLM 推理仿真

-   低精度训练稳定性验证

-   自定义量化策略对比

-   硬件指令集设计前的算法级验证

-   Benchmark 与挑战赛统一评测框架

四、快速开始

1. 获取代码

 

``` bash

git clone https://github.com/global-computing-consortium/HiFloat8.git

git clone https://github.com/global-computing-consortium/HiFloat4.git

```

五、HiFloat8 使用流程(示例)

1. CUDA GPU 构建

 

``` bash

bash build.sh

python hif8_bf16.py

```

 

若输出:

ABS diff max (zero values): 0

则说明构建成功。

 

2. Ascend NPU 构建

 

``` bash

bash build_npu_ops.sh

python hif8_bf16.py

```

 

若输出:

ABS diff max (zero values): 0

则说明构建成功。

 

3. 线性层仿真示例(GPU)

 

``` python

import torch

from quant_cy import QType, quant_dequant_float

 

qtype_str = 'hif8'

quant_type = QType(qtype_str).dim(0)

 

x_sim = quant_dequant_float(x.cuda(), quant_type, force_py=False, force_fp32=True)

w_sim = quant_dequant_float(w.cuda(), quant_type, force_py=False, force_fp32=True)

 

y = torch.nn.functional.linear(x_sim, w_sim)

```

六、HiFloat4 使用说明

1.  进入对应目录:

 

-   hif4_gpu\

-   hifx4_npu

 

2.  根据目录内脚本进行编译与运行

 

3.  在模型中采用 quant-dequant + op 的方式完成仿真流程

七、开源链接

HiFloat8:\

https://github.com/global-computing-consortium/HiFloat8

 

HiFloat4:\

https://github.com/global-computing-consortium/HiFloat

八、技术支持与联系

如在构建、适配或实验过程中遇到问题,欢迎联系:zhangqianlin@gccorg.com

我们期待与世界各地的成员合作

登录 注册