跟Xilinx SAE 学HLS系列视频讲座笔记(1)(上)

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 第一讲 工作机制第二讲 Vivado HLS设计流程相关的概念1. 传统的设计流程2. C的设计流程第三讲 如何处理任意精度的数据类型第四讲 数据类型的转换第五讲 了解HLS中的复合数据类型第六讲 Vivado HLS中的C++基本运算

第一讲 工作机制

HLS高层次语言开发,高层次语言可以提高生产力,(时序和并行性)时序设计比较困难,并行性实际是vhdl的硬件语言,我们采用c或者c+z主要关心的是算法,对于软件工程师可以提高性能,我们可以通过fpga实现,可以提高性能,改善功能,在c或者c+在这个层面进行开发。

我们做好c和c++算法之后,也还需要有一个测试文本(用c或c++)用于验证。符合我们期望的要求。所以hls生成的hdl的代码,不是让我们看懂的,也不是让我们看的(可读行不高)。所以我们主要是对c或者c++进行优化。vivado将c–>hdl有几个阶段。

第一个阶段 :


scheduling(调度)和control logic extraction(控制逻辑的提取)。完成的是每个时钟周期应该做什么操作,和这个操作需要几个周期来完成以及是否这个操作可以并行执行。

第二阶段:binding。这个阶段主要说明每个操作要用什么样的资源去实现,完成的是一个映射的过程。



总结:

  • 了解Vivado HLS的两个阶段scheduling(调度)和control logic extraction(控制逻辑的提取)。
  • 了解算法流程图,对Vivado HLS生成的控制状态很有帮助。控制状态在Vivado hls内部去控制那个操作在那个时钟周期去执行。

困惑:

采用这种高级工具就可以转换,这种方法靠谱吗?其实我们需要在原理上清楚,这个是类似于根据算法流程图往有限状态机,通过有限状态机控制算法的进程。后续讲解Vivado HLS设计流程,说明其可行性。

第二讲 Vivado HLS设计流程相关的概念

1. 传统的设计流程

我们需要用硬件描述语言VHDL或verilog等描述我们的算法和测试激励(test batch i.e. 测试文件)。之后执行RTL行为级仿真(这个过程是一个迭代的过程,以验证硬件描述的装确性)。之后执行综合和布局布线,在这个阶段实现设计的收敛(latency,timing,resource)。


2. C的设计流程

我们使用C或者C++来描述我们算法个测试激励(test batch i.e. 测试文件),这个过程也是一个迭代的过程。

然后通过高级综合工具完成C到RTL的转换,在这个阶段实现设计的收敛(latency,timing,resource)。

后续跟传统的RTL一致。之后执行综合和布局布线,综合测试。


第三讲 如何处理任意精度的数据类型

使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当您创建一个变量时,就会在内存中保留一些空间。您可能需要存储各种数据类型(比如字符型、宽字符型、整型、浮点型、双浮点型、布尔型等)的信息,操作系统会根据变量的数据类型,来分配内存和决定在保留内存中存储什么。下图是基于C++的数据类型。


怎么定义任意精度数据类型的变量

Arbitrary Precision Fixed Point Types的缩写就是ap_fixed,任意精度定点数类型。

我们采用任意精度的数据类型,我们可以了解到,其各项指标都有了较好的进步。

采用sizeof()返回数据类型(一个变量)。

我们做一些相应的设定就可以了

总结

  • Vivado HLS从C / C ++继承基于C的本机数据类型,包括har,short,int,float和double
  • Vivado HLS引入了新的数据类型Arbitrary Precision,可提高硬件效率
  • 在头文件中定义数据类型是一种更好的做法
相关实践学习
1分钟部署经典小游戏
本场景介绍如何使用Serverless应用引擎SAE 1分钟快速部署经典小游戏。
SAE的功能与使用入门
欢迎来到《SAE的功能与使用入门》,本课程是“云原生Serverless Clouder认证“系列中的第三阶段。课程将向您介绍阿里云Serverless应用引擎(SAE)服务相关的概念、特性与使用方式。通过课程将带您逐步深入探索Serverless世界,借助SAE服务,即使没有丰富的云计算和IT经验,也能够让开发人员在实际业务场景中便捷的掌握如何构建和部署应用程序,快速拥抱Serverless架构,将精力聚焦在应用代码和业务逻辑的实现上。 学习完本课程后,您将能够: 掌握Serverless应用引擎(SAE)的基本概念与核心优势 了解Serverless应用引擎(SAE)的核心功能 掌握使用Serverless应用引擎(SAE)的开发和部署流程 了解Serverless应用引擎(SAE)的适用场景和最佳实践  
相关文章
跟Xilinx SAE 学HLS系列视频讲座笔记(6)—— 函数优化
1. 函数层面的优化 从函数这个角度来说代码风格,主要是看参数的数据类型,C++中的数据类型是以8为边界的,而实际硬件中我们可能会遇到任意精度的数据类型,因此我们一定在C++中定义为任意精度的数据类型;
110 0
跟Xilinx SAE 学HLS系列视频讲座笔记(6)—— 函数优化
跟Xilinx SAE 学HLS系列视频讲座笔记(5)—— 数组优化(下)
第一讲 数组分割 第二讲 数组映射与重组 第三讲 其他优化方法
104 0
跟Xilinx SAE 学HLS系列视频讲座笔记(5)—— 数组优化(下)
跟Xilinx SAE 学HLS系列视频讲座笔记(5)—— 数组优化(上)
第一讲 数组分割 第二讲 数组映射与重组 第三讲 其他优化方法
180 0
跟Xilinx SAE 学HLS系列视频讲座笔记(5)—— 数组优化(上)
跟Xilinx SAE 学HLS系列视频讲座笔记(4)——For循环优化(下)
目录 第一讲 For循环优化的性能指标 第二讲 for循环优化-循环合并 第三讲 for循环优化-数据流 第四讲 嵌套for循环优化 第五讲 for循环优化其他方法
125 0
跟Xilinx SAE 学HLS系列视频讲座笔记(4)——For循环优化(下)
|
存储 调度
跟Xilinx SAE 学HLS系列视频讲座笔记(4)——For循环优化(中)
目录 第一讲 For循环优化的性能指标 第二讲 for循环优化-循环合并 第三讲 for循环优化-数据流 第四讲 嵌套for循环优化 第五讲 for循环优化其他方法
218 0
跟Xilinx SAE 学HLS系列视频讲座笔记(4)——For循环优化(中)
|
异构计算
跟Xilinx SAE 学HLS系列视频讲座笔记(4)——For循环优化(上)
目录 第一讲 For循环优化的性能指标 第二讲 for循环优化-循环合并 第三讲 for循环优化-数据流 第四讲 嵌套for循环优化 第五讲 for循环优化其他方法
133 0
跟Xilinx SAE 学HLS系列视频讲座笔记(4)——For循环优化(上)
跟Xilinx SAE 学HLS系列视频讲座笔记(3)—— 接口综合(下)
目录 第一讲 接口综合的基本介绍 第二讲 接口综合—对数组的处理 第三讲 接口综合—其他案例演示
110 0
跟Xilinx SAE 学HLS系列视频讲座笔记(3)—— 接口综合(下)
|
5月前
|
运维 Serverless 应用服务中间件
Serverless 应用引擎产品使用合集之关于OSS映射目录的大小限制,如何可以跳过
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
Serverless 应用引擎产品使用合集之关于OSS映射目录的大小限制,如何可以跳过
|
5月前
|
运维 Serverless API
Serverless 应用引擎产品使用合集之通过 API 调用 /tagger/v1/interrogate 时,出现unsupported protocol scheme "" 错误,如何处理
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
5月前
|
缓存 运维 监控
Serverless 应用引擎产品使用合集之在使用函数计算 FC 部署 stable-diffusion 应用时,选了 tagger 扩展插件却拿不到提示词,还报错“Error”,是什么原因
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。

热门文章

最新文章