news 2026/6/17 3:36:32

HLS用于应用加速

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HLS用于应用加速


一、why FPGA
1.FPGA可以自定义数据类型
2.FPGA可以自定义数据路径,dataflow or pipeline
3.有效的memory访问,可以random access,FIFO,stack
4.parallelism并行化没有限制

二、FPGA开发趋于简单化
1.可以使用c/c++/system c,opencl,python来开发FPGA
2.tenssorflow

三、HLS代码结构
1.top-level函数定义
2.interface接口定义
3.dataflow the processing
4.internal streaming variable变量声明
5.synchronize to start of frame帧同步开始
6.covert from axi stream to xf::Mat

四、HLS让FPGA开发变得简单

五、并行化
并行化有两种
1.data-level parallesim
2.task-level parallelism
3.Instruction(operator) level parallelsim
在HLS设计中需要考虑的data-level和task-level的并行化,
不需要考虑指令或者操作的并行化,指令和操作的并行化是HLS帮我们做了。

六、CPU和FPGA
1.cpu使用得地址空间都是虚拟的地址空间
2.FPGA使用的地址空间都是physical address space

七、组合逻辑 + 时序逻辑模型设计

1.单个组合逻辑+时序逻辑设计模型


void comb_sequential_top
(
ap_uint<32> in1,
ap_uint<32> in2,
ap_uint<32> *out
){
#pragma HLS INTERFACE ap_ctrl_none port=return
#pragma HLS INTERFACE ap_none port=in1
#pragma HLS INTERFACE ap_none port=in2
#pragma HLS INTERFACE ap_none port=out
static int L;//flip-flop

*out = in1 * L;//read current-L
L = in2 + L;//assign next-L
}

2.多个组合逻辑+时序逻辑模型

void sub1_func(
ap_uint<32> in1,
ap_uint<32> in2,
ap_uint<32> *out
){
#pragma HLS INLINE off
static int L;//flip-flop

*out = in1 * L;//read current-L
L = in2 + L;//assign next-L
}

void sub2_func(
ap_uint<32> in1,
ap_uint<32> in2,
ap_uint<32> *out
){
#pragma HLS INLINE off
static int L;//flip-flop

*out = in1 * L;//read current-L
L = in2 + L;//assign next-L
}


void comb_sequential_top
(
ap_uint<32> in1,
ap_uint<32> *out
){
#pragma HLS INTERFACE ap_ctrl_none port=return
#pragma HLS INTERFACE ap_none port=in1
#pragma HLS INTERFACE ap_none port=out

ap_uint<32> tmp1;
ap_uint<32> tmp2;

sub1_func(in1,tmp2,&tmp1);

sub2_func(tmp1,tmp1,&tmp2);

*out = tmp2;

}

上述这个代码综合设计,发现综合的rtl代码,并没有实现两次组合逻辑+时序逻辑模块,为什么??

template<int N>
void sub1_func(
ap_uint<32> in1,
ap_uint<32> in2,
ap_uint<32> *out
){
#pragma HLS INLINE off
static int L;//flip-flop

*out = in1 * L;//read current-L
L = in2 + L;//assign next-L
}

template<int N>
void sub2_func(
ap_uint<32> in1,
ap_uint<32> in2,
ap_uint<32> *out
){
#pragma HLS INLINE off
static int L;//flip-flop

*out = in1 * L;//read current-L
L = in2 + L;//assign next-L
}


void comb_sequential_top
(
ap_uint<32> in1,
ap_uint<32> *out
){
#pragma HLS INTERFACE ap_ctrl_none port=return
#pragma HLS INTERFACE ap_none port=in1
#pragma HLS INTERFACE ap_none port=out

ap_uint<32> tmp1;
ap_uint<32> tmp2;

sub1_func<1>(in1,tmp2,&tmp1);

sub1_func<2>(tmp1,tmp1,&tmp2);

*out = tmp2;

}
使用模板函数好像实现的功能也不太对!!!

这个后续专门对这块设计进行说明!!!

3.two-module

void comb_sequential_top
(
ap_uint<32> in1,
ap_uint<32> *out
){
#pragma HLS INTERFACE ap_ctrl_none port=return
#pragma HLS INTERFACE ap_none port=in1
#pragma HLS INTERFACE ap_none port=out

ap_uint<32> tmp1;
ap_uint<32> tmp2;

sub1_func(in1,in1,&tmp1);

sub1_func(tmp1,tmp1,&tmp2);

*out = tmp2;

}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/16 17:29:31

为什么你的Open-AutoGLM协作总失败?99%的人都忽略了这4个关键点

第一章&#xff1a;Open-AutoGLM协作失败的根源分析在分布式大模型协作推理系统中&#xff0c;Open-AutoGLM的设计初衷是实现多节点间的高效任务调度与语义理解协同。然而&#xff0c;在实际部署过程中&#xff0c;频繁出现协作中断、响应延迟和结果不一致等问题。这些问题的背…

作者头像 李华
网站建设 2026/6/13 10:37:39

为什么90%的Open-AutoGLM部署都忽略了权限审计?现在补救还来得及!

第一章&#xff1a;Open-AutoGLM账号权限管理的现状与挑战随着Open-AutoGLM平台在自动化代码生成与模型调用领域的广泛应用&#xff0c;其账号权限管理体系面临日益复杂的使用场景和安全需求。当前系统采用基于角色的访问控制&#xff08;RBAC&#xff09;模型&#xff0c;用户…

作者头像 李华
网站建设 2026/6/17 16:28:05

从零构建智能回复机器人:基于Open-AutoGLM的7个核心步骤

第一章&#xff1a;智能回复机器人的概念与Open-AutoGLM概述智能回复机器人是一种基于自然语言处理技术&#xff0c;能够理解用户输入并自动生成语义连贯、上下文相关的响应的系统。这类系统广泛应用于客服自动化、社交平台互动以及企业级消息处理等场景。其核心技术依赖于大规…

作者头像 李华
网站建设 2026/6/16 17:41:46

Open-AutoGLM核心技术解析(普通人也能学会的AI文案引擎)

第一章&#xff1a;Open-AutoGLM核心技术解析&#xff08;普通人也能学会的AI文案引擎&#xff09;Open-AutoGLM 是一款面向大众用户的开源 AI 文案生成引擎&#xff0c;基于改进的 GLM 架构构建&#xff0c;具备高效理解与生成中文文本的能力。其设计目标是让非技术人员也能轻…

作者头像 李华
网站建设 2026/6/16 5:57:44

单北斗GNSS在变形监测中的应用与技术探索

本文重点介绍了单北斗GNSS在变形监测领域的应用和技术进展。首先讨论了其基本工作原理&#xff0c;包括通过接收卫星信号实现高精度定位。同时&#xff0c;通过分析单北斗变形监测的实际应用案例&#xff0c;如桥梁和地质灾害监测&#xff0c;明确了其在确保工程安全方面的重要…

作者头像 李华
网站建设 2026/6/12 20:50:16

揭秘Open-AutoGLM内容过滤机制:如何精准筛选高价值视频号内容

第一章&#xff1a;揭秘Open-AutoGLM内容过滤机制的核心原理Open-AutoGLM 作为新一代生成式语言模型&#xff0c;其内容过滤机制在保障输出安全性和合规性方面发挥着关键作用。该机制并非依赖简单的关键词匹配&#xff0c;而是基于多层深度学习模型与规则引擎协同工作的复合架构…

作者头像 李华