当前位置: 首页 > wzjs >正文

怎么样做好网站建设简述网站制作的过程

怎么样做好网站建设,简述网站制作的过程,在哪给人做网站,电子商务网站建设 论文目录 1. 简介 2. 示例分析 2.1 代码分析 2.2 控制驱动TLP的关键特征 2.3 数据驱动TLP的关键特征 3. 总结 1. 简介 在 HLS 硬件加速领域,Vitis HLS 提供了强大的抽象并行编程模型。这些模型包括控制驱动和数据驱动的任务级并行性(TLP)&…

目录

1. 简介

2. 示例分析

2.1 代码分析

2.2 控制驱动TLP的关键特征

2.3 数据驱动TLP的关键特征

3. 总结


1. 简介

在 HLS 硬件加速领域,Vitis HLS 提供了强大的抽象并行编程模型。这些模型包括控制驱动和数据驱动的任务级并行性(TLP),它们是硬件设计优化的基石。控制驱动TLP通过#pragma HLS dataflow指令实现函数的并行执行,而数据驱动TLP则利用hls::task类将函数转化为并行任务。这篇博文将深入探讨这两种并行性的特点,并通过代码示例展示它们在实际硬件设计中的应用,揭示如何有效地结合这两种模型以提升硬件性能和加速复杂算法的执行。

2. 示例分析

2.1 代码分析

#include "hls_np_channel.h"
#include "hls_task.h"void worker(hls::stream<int>& in, hls::stream<int>& out) {int i = in.read();int o = i * 2 + 1;out.write(o);
}void read_in(int* in, int n, hls::stream<int>& out) {for (int i = 0; i < n; i++) {out.write(in[i]);}
}void write_out(hls::stream<int>& in, int* out, int n) {for (int i = 0; i < n; i++) {out[i] = in.read();}
}void dut(int in[16], int out[16], int n) {hls_thread_local hls::split::round_robin<int, 4> split1;hls_thread_local hls::merge::round_robin<int, 4> merge1;
#pragma HLS dataflowread_in(in, n, split1.in);// Task-Channelshls_thread_local hls::task t[4];for (int i = 0; i < 4; i++) {
#pragma HLS unrollt[i](worker, split1.out[i], merge1.in[i]);}write_out(merge1.out, out, n);
}

功能分析:

  • worker:从输入流中读取数据,进行处理(乘2加1),然后将结果写入输出流。
  • read_in:从输入数组中读取数据,写入到输出流。
  • write_out:从输入流中读取数据,写入到输出数组。

2.2 控制驱动TLP的关键特征

#pragma HLS dataflow 指示HLS工具启用数据流模式,让不同的函数可以并行执行,它是控制驱动TLP的关键特征,具体体现如下:

  • read_in 函数和 split1 模块将数据分发到不同的通道。
  • 四个 worker 函数并行处理数据。
  • write_out 函数和 merge1 模块从不同的通道收集数据并写入输出数组。

此外,顶层函数 void dut(int in[16], int out[16], int n)  中,参数 in 和 out 均为外部存储器。

2.3 数据驱动TLP的关键特征

hls::task是一个任务通道,它允许将函数作为任务并行执行,它是数据驱动TLP的关键特征

示例代码中,worker函数被封装成任务并分配给四个hls::task实例,每个实例处理输入数据流的一部分,并将结果发送到合并通道。

hls::split::round_robin和hls::merge::round_robin是用于数据分割和合并的工具,它们支持数据流中的并行处理。split1将输入数据流平均分配给四个工作任务,而merge1则将这些任务的输出合并回单个数据流。

#pragma HLS unroll指令用于完全展开循环,确保所有任务并行执行。

3. 总结

在Vitis HLS中,控制驱动(Control-driven)和数据驱动(Data-driven)的并行性是高效硬件设计的两个关键组成部分。控制驱动并行性通过#pragma HLS dataflow指令实现,允许不同函数在数据准备好时即刻并行执行,从而优化整体性能。数据驱动并行性则通过hls::task类实现,它将函数封装为可并行执行的任务。这两种技术的结合,使得设计者能够充分利用硬件资源,实现复杂算法的高效执行。通过示例代码的分析,我们可以看到如何在实践中应用这些并行编程模型,以及它们如何协同工作以达到最佳的硬件加速效果。


文章转载自:

http://DJHpnNlC.Lktjj.cn
http://NpPNM2aL.Lktjj.cn
http://xkE2xa0F.Lktjj.cn
http://DW2C1faL.Lktjj.cn
http://6ERvpTPw.Lktjj.cn
http://LkBj4daS.Lktjj.cn
http://CtbJ5iat.Lktjj.cn
http://9967fh7d.Lktjj.cn
http://lwBikwxm.Lktjj.cn
http://9d1swl6e.Lktjj.cn
http://AHGfWUGM.Lktjj.cn
http://8ywqhXTA.Lktjj.cn
http://tuyHlfbo.Lktjj.cn
http://uj7J12Kn.Lktjj.cn
http://oRdUUFVc.Lktjj.cn
http://FJ0s3go0.Lktjj.cn
http://tLzfQGTo.Lktjj.cn
http://3ktZnNaH.Lktjj.cn
http://BbIpArz9.Lktjj.cn
http://YVkP1rOg.Lktjj.cn
http://1ArHKH7M.Lktjj.cn
http://VcvbQX4U.Lktjj.cn
http://TFgtNKHQ.Lktjj.cn
http://TJR3XbHe.Lktjj.cn
http://G2HnfneL.Lktjj.cn
http://yK9p5uT2.Lktjj.cn
http://96AQpKNq.Lktjj.cn
http://LduCosmV.Lktjj.cn
http://bT26w5vo.Lktjj.cn
http://bUpxyAEQ.Lktjj.cn
http://www.dtcms.com/wzjs/747661.html

相关文章:

  • 河南省和城乡建设厅网站做中医药网站有前景吗
  • 长春专业网站建设推广企业网站建设方案模板
  • 宁波网站建设系统介绍wordpress安装资料夹
  • 建设网站那家公司好做网站的公司术语
  • 网站备案下来以后怎么做网页wordpress 网站底部美化
  • 城阳天河小学网站建设价格低的车
  • 东莞企业网站后缀工信部网站备案管理系统
  • 邯郸网站设计定制海南住房和城乡建设厅网站
  • 技术支持保定网站建设 定兴wordpress字体目录
  • 口子网站怎么做香水网站模板
  • 永城市专业做网站脑洞大开的创意设计
  • 奉贤集团网站建设广西建设信息网官网
  • 永远网站建设建筑公司资质等级
  • 海门网站制作中文旅游网站模板下载
  • flash做游戏下载网站济南历山北路网站建设
  • 做外单网站亚马逊网站及app开发招聘
  • 空间刷赞网站推广东游科技网站建设
  • 外贸单页网站案例北京企业网站制作哪家好
  • 岳阳做网站的公司凡科互动小程序怎么解封
  • 平山县建设局网站南充市住房和城乡建设厅官方网站
  • 制作网站需要什么技术查看网站是否被k
  • 网站建设与管理难学吗一台云服务器可以做多少个网站
  • 开发专业网站子网站如何做
  • 网站建设公司墨子网络宝塔 怎么做网站
  • 建立企业门户网站河北邯郸市简介
  • 电子商务网站开发 phpwordpress 媒体库 最大
  • 市政道路毕业设计代做网站运城网站建设哪个好
  • 网站建设分金手指专业十免费域名怎么做网站
  • wordpress模版建站建设营销型网页
  • 杭州个人做网站做外贸是网站好还是展会好