09 2024 档案

摘要:传统编译器与 AI 编译器区别 接下来,来了解一下 AI 编译器与传统编译器的区别与联系。 1. 区别与联系 1)目标相同:AI 编译器与传统编译器都是通过自动化的方式进行程序优化和代码生成,从而节省大量的人力对不同底层硬件的手动优化。 2)优化方式类似:在编译优化层,AI 编译器与传统编译器都是通 阅读全文
posted @ 2024-09-30 14:14 吴建明wujianming 阅读(158) 评论(0) 推荐(1) 编辑
摘要:应用层需要 AI 编译器 从硬件角度以及底层软件的角度来看待为什么需要 AI 编译器的,而现在可以换一个上层应用视角来看待这个问题。 以深度神经网络为技术基础的人工智能领域在近些年发展十分迅速,从 10 年前,AI 技术可能只能解决图形分类等较为简单的任务,但如今无论是推荐系统、大语言模型、自动驾驶 阅读全文
posted @ 2024-09-30 14:12 吴建明wujianming 阅读(47) 评论(0) 推荐(1) 编辑
摘要:为什么需要 AI 编译器 随着硬件技术的不断进步,进入了一个新的计算加速时代,这个时代的硬件平台变得越来越复杂和多层次。现代计算加速平台采用了多层架构,包括标量、向量、多核、多包、多机架等不同层次的并行处理能力。这种设计不仅提高了性能,也增加了硬件设计的复杂性。同时,现代计算平台的架构设计是明确的, 阅读全文
posted @ 2024-09-30 14:09 吴建明wujianming 阅读(65) 评论(0) 推荐(0) 编辑
摘要:硬件资源说明 1)SDIO WIFI 接口 这是开发板上的一个 SDIO WIFI(P2) 接口,可以通过此接口连接正点原子出品的 SDIO WIFI模块。 SDIO WIFI 接口和 TF 卡共用一个 USDHC 接口,因此不能同时和 TF 卡使用。 2)USB 转串口 USB 串口,为 Mini 阅读全文
posted @ 2024-09-21 16:54 吴建明wujianming 阅读(124) 评论(0) 推荐(0) 编辑
摘要:Cortex-A7 MPCore 架构 1)Cortex-A7 MPCore 简介 Cortex-A7 MPcore 处理器支持 1~4 核,通常是和 Cortex-A15 组成 big.LITTLE 架构的,Cortex-A15 作为大核负责高性能运算,比如玩游戏啥的, Cortex-A7 负责普 阅读全文
posted @ 2024-09-21 16:51 吴建明wujianming 阅读(74) 评论(0) 推荐(0) 编辑
摘要:张量 矩阵乘法优化 在SIMT架构下, 不使用TensorCore进行矩阵乘法,计算所需要的访存相关的优化。通过逐步迭代优化,深入理解GPU的性能特征和内存访问优化。 测试环境为一块A10 GPU, 驱动版本: 550.54.15, CUDA版本: 12.4 . 矩阵M=N=K=4092,见表6-5 阅读全文
posted @ 2024-09-20 03:44 吴建明wujianming 阅读(37) 评论(0) 推荐(0) 编辑
摘要:通用矩阵乘法执行 使用两个手工实现的纯粹GEMM和分块GEMM的例子来解释矩阵分块乘法的原理和性能影响, 可以看到性能差距接近53倍. 按照测试的A10 GPU峰值FP32算力31TFFLOPS来算, 最朴素的算法由于访存效率的问题, 浮点算力仅为峰值的1%。 # ./naive AveragePe 阅读全文
posted @ 2024-09-20 03:38 吴建明wujianming 阅读(40) 评论(0) 推荐(0) 编辑
摘要:多机训练时的环境变量 通过设置环境变量配置分布式训练,仅仅是为了在交互式 Python 环境下,方便查看实验效果。如果不是学习、试验目的,而是生产需求,可以直接通过 oneflow.distributed.launch 启动分布式训练,该模块内部根据命令行参数,自动设置了必要的环境变量。 1)MAS 阅读全文
posted @ 2024-09-18 19:34 吴建明wujianming 阅读(99) 评论(0) 推荐(0) 编辑
摘要:AI 框架作用 深度学习范式主要是通过发现经验数据中,错综复杂的结构进行学习。通过构建包含多个处理层的计算模型(网络模型),深度学习可以创建多个级别的抽象层来表示数据。例如,卷积神经网络 CNN 可以使用大量图像进行训练,例如对猫狗分类去学习猫和狗图片的特征。这种类型的神经网络通常从所采集图像中,包 阅读全文
posted @ 2024-09-15 10:48 吴建明wujianming 阅读(58) 评论(0) 推荐(0) 编辑
摘要:张量计算空间组合优化方法 空间组合优化方法 如图7-42所示,以分块卷积为例,如图所示在空间上将输出、输入划分为四份: 图7-42在空间上将输出、输入划分为四份 如图7-43所示,划分后,大卷积计算被拆分为若干个小卷积进行计算,小卷积块的大小必须与卷积核的大小相匹配。划分过程中计算总量不变,但计算小 阅读全文
posted @ 2024-09-15 10:41 吴建明wujianming 阅读(53) 评论(0) 推荐(0) 编辑
摘要:英特尔FPGA深度学习加速(DLA)套件 英特尔FPGA的DLA加速套件,如图11-17所示。 图11-17 英特尔FPGA的DLA加速套件 深度学习部署工具包(DLDT)中的推理引擎,提供了一个高级的设备无关API来编程推理。这是一些示例代码,如图11-18所示。 图11-18 深度学习部署工具包 阅读全文
posted @ 2024-09-08 07:01 吴建明wujianming 阅读(52) 评论(0) 推荐(0) 编辑
摘要:推理引擎流程 总结一下推理引擎(IE)调用FPGA设备的流程。开发人员通过IE通用API进行推理调用,IE调用FPGA插件,这调用了运行OpenCL运行时的DLA(英特尔深度学习加速器)。最终发送到实现基元(如卷积、ReLU等)的DLA FPGA IP。如图11-28所示。 图11-28 推理引擎( 阅读全文
posted @ 2024-09-08 06:53 吴建明wujianming 阅读(25) 评论(0) 推荐(0) 编辑
摘要:在全连接层中进行批量数据并行执行 在全连接网络中,为了增加并发性并减少权重的负载,可以同时处理一批图像(来自多个视频通道),如图11-31所示。 图11-31 增加并发性并减少权重的负载,可以同时处理一批图像 11.2.6 特征缓存 在流处理中,对输入和结果使用双缓冲区。对于下一次循环,只需切换这些 阅读全文
posted @ 2024-09-06 17:53 吴建明wujianming 阅读(21) 评论(0) 推荐(0) 编辑
摘要:低比特量化方法 计算机里面数值有很多种表示方式,如浮点表示的 FP32、FP16,整数表示的 INT32、INT16、INT8,量化一般是将 FP32、FP16 降低为 INT8 甚至 INT4 等低比特表示,如图7-2所示。 图7-2 数值有很多种表示格式 模型量化则是一种将浮点值映射到低比特离散 阅读全文
posted @ 2024-09-05 17:02 吴建明wujianming 阅读(174) 评论(0) 推荐(0) 编辑
摘要:感知量化训练 QAT 传统的训练后量化将模型从 FP32 量化到 INT8 精度时会产生较大的数值精度损失。感知量化训练(Aware Quantization Training)通过在训练期间模拟量化操作,可以最大限度地减少量化带来的精度损失。 QAT 的流程,如图7-9所示,首先基于预训练好的模型 阅读全文
posted @ 2024-09-02 06:15 吴建明wujianming 阅读(63) 评论(0) 推荐(0) 编辑
摘要:量化方法对比 QAT 可以达到的精度较高,但是往往需要较多的量化训练时间,量化成本比较大。PTQ 的量化过程比较迅速,只需要少量数据集来校准,但是量化后精度往往损失较多,见表7-1。 表7-1 量化方法参数对比 量化方法 功能 经典适用场景 使用条件 易用性 精度损失 预期收益 量化训练 (QAT) 阅读全文
posted @ 2024-09-02 06:11 吴建明wujianming 阅读(58) 评论(0) 推荐(0) 编辑
摘要:深度学习模型优化概述 模型压缩跟轻量化网络模型不同,压缩主要是对轻量化或者非轻量化模型执行剪枝、蒸馏、量化等压缩算法和手段,使得模型更加小、更加轻便、更加利于执行。 基本介绍 随着神经网络模型的复杂性和规模不断增加,模型对存储空间和计算资源的需求越来越多,使得部署和运行成本显著上升。模型压缩的目标是 阅读全文
posted @ 2024-09-02 06:05 吴建明wujianming 阅读(98) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示