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

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

第四讲 数据类型的转换

1. 如何对一个变量进行定义和初始化

HLS可以采用拷贝初始化和直接初始化,但是不支持C++11后的方法统一初始化(Uniform Initialization)。我们还可以使用不同基数的格式(2进制,8进制,16进制等),其中可将前缀(0b二进制,0o八进制,0x16进制)省略,这样是极好的。同时,我们应该避免在一行定义多个变量,我们尽量每一行定义一个变量。

2. 对ap_[u]fixed<W, I,Q,0>的变量类型的理解

ap_[u]fixed < int W, int I, ap_q_mode Q, ap_o_mode O, ap_sat_bits N >

1、W:宽度,数据占用的位宽;

2、I:整数部分的位数,那么(W-I)就是小数部分fraction占用的宽度了;

3、Q:量化模式

4、O:溢出模式

3. 对于浮点类型的定义于初始化

必须使用f后缀来表示float类型的文字

double vf2(5.0); 
float vf3(5.0f);

Vivado HLS数学库hls_math.h为标准C的math.h和C++的cmath.h库提供了广泛的支持。支持包括浮点和任意精度的支持。

4. 数据类型的转换——隐式数据类型的转换

5. 数据类型的转换——显示数据类型的转换

6 . 二进制算术运算

7. 获取数据类型typeid

8. 总结

第五讲 了解HLS中的复合数据类型

1. 结构体

将结构用作顶层函数的参数时。标量(scalar)作为标准的scalar端口;数组默认为存储器的端口。在实际使用中在结构体在预先的头文件中声明 。通过数据打包优化,可以将结构上的元素打包到单个向量中。

主要有field_level和struct_level

2. 例子

怎么设定

3. Byte Pad: field level

什么是field level呢?

结构体中的所有元素都是以8为边界,例如变量A为4bit必须扩展为8bit,如果A是12bit必须扩展为16bit。由于以下元素都是4bit,所以被扩展为8bit。

4. Byte Pad: struct level

什么是struct level呢?

对于结构体所有位宽依然保留。但是在封装的位宽要以8bit作为边界。有5个元素,一个为4bit所以一共是20bit,那么最终扩展到24bit。

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

热门文章

最新文章