five

Kratos Benchmark

收藏
arXiv2024-07-08 更新2024-07-23 收录
下载链接:
https://github.com/abdelfattah-lab/Kratos-benchmark
下载链接
链接失效反馈
官方服务:
资源简介:
Kratos Benchmark是由康奈尔大学开发的一个专注于FPGA上展开式DNN(深度神经网络)的基准测试套件。该数据集包含8个内核,主要用于评估和优化卷积和通用矩阵乘法(GEMM)层在不同级别稀疏性和数值精度下的性能。数据集通过系统级Verilog代码实现,支持商业和学术CAD流程,旨在通过高稀疏性和低比特宽度实现显著的面积减少,从而推动新型可编程架构的发展,特别是在稀疏和低精度DNN加速领域。

Kratos Benchmark is a benchmark suite focused on unfolded Deep Neural Networks (DNNs) on Field-Programmable Gate Arrays (FPGAs), developed by Cornell University. This suite comprises 8 kernels, which are primarily utilized to evaluate and optimize the performance of convolutional and General Matrix Multiplication (GEMM) layers under varying levels of sparsity and numerical precision. Implemented using system-level Verilog code, it supports both commercial and academic Computer-Aided Design (CAD) flows. The suite aims to achieve substantial area reduction through high sparsity and low bit-width, thereby advancing the development of novel programmable architectures, especially in the field of sparse and low-precision DNN acceleration.
提供机构:
康奈尔大学
创建时间:
2024-07-08
原始信息汇总

Kratos FPGA 基准测试数据集

代码结构

  • 文件夹 conv_1dconv_2dgemmsgemmt 包含相应基准测试的 SystemVerilog 代码,包括模块和包装生成脚本。
  • flow_general.py 包含 QuartusRunnerVTRRunner 两个类,用于自动运行基准测试集。

内核表

  • 内核表信息以图片形式展示,文件名为 kernel_table.png

使用方法

  • 使用 sample.py 作为示例:
    1. 导入 flow_general.py 以获取必要的工具。
    2. 创建一个字典来指定内核的参数。
    3. 使用内核模块和参数创建一个 VTRRunner 对象。
    4. 使用 run 方法运行内核,并使用 get_result 方法获取结果。
    5. 运行器将在当前目录中创建一个文件夹来存储生成的文件和结果。运行过程的标准输出和标准错误将被捕获并存储在文件夹中。

python from flow_general import *

settings = { data_width: 8, row_num: 8, col_num: 8, length: 8, sparsity: 0.5, }

q = VTRRunner(flow_gemmt_fu_util, settings) q.run() q.wait() print(q.get_result())

  • 更多高级用法,请阅读 flow_general.py 中的注释和代码。
搜集汇总
数据集介绍
main_image_url
构建方式
Kratos Benchmark 数据集的构建方式是将深度神经网络(DNN)的层部分或完全展开,以匹配不同层之间的吞吐量。通过这种方式,参数级和位级的无效操作可以被完全跳过,从而节省相关的面积和功耗。此外,Kratos 数据集还考虑了不同级别的稀疏性和不同的算术精度,以便更好地探索 FPGA 架构的优化。该数据集包含 8 个内核,实现了两种主要的 DNN 操作:GEMM 和卷积。这些内核的输入、权重和输出维度,以及稀疏性和精度都可以通过 Python 脚本进行参数化,从而实现大规模的设计空间探索。
使用方法
Kratos Benchmark 数据集的使用方法是通过 Python 脚本自动生成顶层 SystemVerilog 模块,该模块包含预实现的内核和嵌入的权重。用户可以通过提供设计参数来指定输入和权重的维度、稀疏性和精度。此外,Kratos 工具集还提供了一个批量作业脚本,允许用户定义多个大小、精度和稀疏性,并自动为不同的组合启动流程。通过使用 Kratos 数据集,用户可以探索不同的 FPGA 架构,并评估其在展开的 DNN 实现中的性能和面积特性。
背景与挑战
背景概述
深度神经网络(DNN)推理在众多应用中扮演着关键角色,包括图像识别、语音识别、自然语言处理以及自动驾驶等。尽管GPU和定制ASIC芯片目前在DNN推理领域占据主导地位,但DNN展现出极高的细粒度稀疏性和能够容忍低精度和混合精度运算的特性,这对现有DNN加速器提出了挑战。FPGA因其高度灵活性和位级可编程性,为稀疏和低精度DNN的加速提供了有吸引力的平台。然而,FPGA的可重构性开销通常很高,与ASIC实现相比效率较低。尽管在FPGA上引入了许多创新的稀疏感知DNN加速器架构,但它们并未获得足够的关注以与当前的GPU或ASIC竞争。Kratos数据集正是在这样的背景下产生的,它是一个专注于未展开DNN原语和不同稀疏级别及不同算术精度的FPGA基准测试。Kratos的研究揭示了未展开DNN可以在非常高的频率下运行,并达到Arria 10设备的最大频率限制。此外,研究发现通过细粒度稀疏和低位宽可以实现显著的面积减少。这些成果为定制FPGA架构以优化未展开DNN的性能开辟了道路。
当前挑战
Kratos数据集面临的主要挑战包括:1) 如何在FPGA上实现高效的未展开DNN推理,充分利用稀疏性和混合精度运算的特性;2) 如何在有限的FPGA资源上实现更大规模的DNN部署;3) 如何在保持高性能的同时,减少FPGA的逻辑块(LB)面积,从而降低成本和功耗;4) 如何在现有的FPGA架构上探索新的优化方案,以提高未展开DNN的性能。为了应对这些挑战,Kratos数据集提供了一系列具有不同稀疏级别和算术精度的未展开DNN原语,并兼容商业和学术CAD流程,以促进FPGA架构的探索和优化。
常用场景
经典使用场景
在深度神经网络(DNN)的推理加速领域,FPGA凭借其灵活性和位级可编程性,成为了一种极具吸引力的加速平台。Kratos Benchmark作为一个针对非均匀工作负载的FPGA基准,特别关注细粒度非结构化稀疏性和混合算术精度。它通过部分或完全展开每个DNN层的计算,实现了参数级和位级无效操作的完全跳过,从而节省了相关的面积和功耗。Kratos Benchmark允许研究者探索新的可重构架构,以提高展开DNN的效率,同时利用稀疏性和混合精度。
解决学术问题
Kratos Benchmark解决了现有DNN加速器难以有效处理细粒度非结构化稀疏性和混合精度的问题。通过展开DNN的基准,它揭示了展开DNN可以在非常高的频率下运行,并实现了显著的面积减少。这些发现为设计新的可编程架构铺平了道路,这些架构专门为稀疏和低精度的展开DNN而设计,从而在面积和功耗方面提供了显著的优势。
实际应用
Kratos Benchmark在实际应用中,特别是对于需要高吞吐量和低延迟的小型DNN模型,具有广泛的应用前景。它可以帮助开发者优化FPGA架构,以适应稀疏和低精度的DNN模型,从而实现更高的效率和更低的功耗。此外,Kratos Benchmark还可以用于探索新的算法优化,如权重共享和时间域复用,以进一步增加能够在目标位可编程设备上运行的展开DNN的大小。
数据集最近研究
最新研究方向
随着深度神经网络(DNN)在图像识别、语音识别、自然语言处理和自动驾驶等领域的广泛应用,FPGA因其高灵活性和位级可编程性而成为加速DNN推理的重要平台。然而,现有的FPGA架构在处理具有细粒度非结构化稀疏性和混合精度运算的DNN时效率较低。为了解决这个问题,Kratos Benchmark应运而生。Kratos是一个专注于未展开DNN原语的数据集,具有不同的稀疏性和不同的算术精度。研究结果表明,未展开的DNN可以在非常高的频率下运行,并可以通过细粒度稀疏性和低位宽实现显著的面积减少。基于这些结果,研究者们通过架构案例研究展示了使用更小的LUT尺寸在当前FPGA上实现的面积减少约2倍,为探索为稀疏和低位宽未展开DNN加速而专门构建的新可编程架构铺平了道路。
相关研究论文
  • 1
    Kratos: An FPGA Benchmark for Unrolled DNNs with Fine-Grained Sparsity and Mixed Precision康奈尔大学 · 2024年
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作