0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用API定义一个向量呢

FPGA技术驿站 来源:TeacherGaoFPGAHub 作者:TeacherGaoFPGAHub 2022-03-30 14:12 次阅读

数据类型是我们使用C++编程时必须明确的一项内容。针对AI Engine,这一点尤为重要。因为不同的数据类型所支持的运算是不同的。对于标量类型,AI Engine支持标准的8位、16位和32位有符号/无符号整型数据类型,同时也支持32位单精度浮点类型(float)。对于向量类型,AI Engine支持特定的向量,所谓特定是指其长度(元素个数)和宽度(数据位宽)是固定的几种,这源于AI Engine自身的架构。 AI Engine所支持的向量类型如下表所示。不难看出,向量的总位宽无外乎128/256/512/1024-bit这四种。例如,对于int8,宽度为8,长度最小为16(对应总位宽为128),最大为128(对应总位宽为1024)。对于cint32(c是complex的首字母,表示复数),宽度为64,长度最小为2(对应总位宽为128),最大为16(对应总位宽1024)。

2cf4709a-ac9d-11ec-aa7f-dac502259ad0.png

为什么向量的总位宽只有这四种呢?这是因为AI Engine内部的向量寄存器位宽也只有这四种,如下图所示。从这个角度而言,尽管C++是高抽象度的编程语言,但针对AI Engine,在编程时仍要考虑AI Engine的架构,编程的过程有点像在C++里写汇编语言。由于向量寄存器的个数是有限的,故向量寄存器属于稀缺资源,如果设计中定义的向量个数超过了向量寄存器的个数,工具会将其映射到AI Engine内的存储器,这时读/写存储器就会有额外的Latency消耗。

2d1130f4-ac9d-11ec-aa7f-dac502259ad0.png

如何使用API定义一个向量呢?我们看一个简单的例子: aie::vector《int32, 16》 这里定义了一个宽度为32,长度为16的向量,如下图所示。共16个索引,每个索引对应一个int32整型数据。

AIE(14)—AI Engine API简介

AIE(13)—标量/向量处理单元

AIE(12)—AI Engine架构概览

AIE(11)—评估graph性能

AIE(10)—使用Trace View

AIE(9)—创建包含PL/PS/AIE的Vitis工程(2)

AIE(8)—创建包含PL/PS/AIE的Vitis工程(1)

AIE(7)—理解Runtime Ratio

AIE(6)—用Vitis Analyzer查看AIE编译结果

AIE(5)—针对AI Engine进行编译

AIE(4)—AIE编译器和X86模拟

AIE(3)—理解AIE编程中的Kernel

AIE(2)—理解AIE编程中的graph

AIE(1)—创建一个简单的AIE工程

揭秘AIE

Vivado ML到底哪些方面利用了机器学习

布线后的设计调试方法

Vivado下如何定制Strategy?

Vivado BDC 怎么用?

SystemVerilog仿真如何生成随机数

Verilog仿真如何生成随机数

为什么VitisHLS报告中Latency显示-?

利用综合技术缓解布线拥塞

Vivado下的管脚分配可以这么做

Vivado Block Design Container

Vivado跟路径相关的错误信息

使用带HBM芯片的注意事项

Vivado Intelligent Design Run(2)

Vivado Intelligent Design Run (1)

Abstract Shell流程分析(2)

Abstract Shell流程分析(1)

Vivado下封装IP基本知识

原文标题:AIE(15)—AI Engine中的数据类型(1)

文章出处:【微信公众号:TeacherGaoFPGAHub】欢迎添加关注!文章转载请注明出处。

审核编辑:彭菁
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    38

    文章

    7148

    浏览量

    161979
  • API
    API
    +关注

    关注

    2

    文章

    1382

    浏览量

    60989
  • 编程语言
    +关注

    关注

    9

    文章

    1878

    浏览量

    33073

原文标题:AIE(15)—AI Engine中的数据类型(1)

文章出处:【微信号:Lauren_FPGA,微信公众号:FPGA技术驿站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    请问中断向量重复定义怎么处理?

    。可以编译通过,但因为中断向量表有错,程序在SystemClock_Config();后 就跑飞了。 如果去除其中定义,则程序不会跑飞。请问遇到这种情况怎么处理?
    发表于 03-28 06:45

    M453VG6AE中断向量表起始地址是多少共有多个中断向量

    芯片:M453VG6AE 这款芯片中断向量表起始地址是多少共有多个中断向量
    发表于 01-17 08:13

    测试向量是什么意思

    测试向量及其生成 测试向量(Test Vector)的一个基本定义是:测试向量是每个时钟周期应用于器件管脚的用于测试或者操作的逻辑1和逻辑0数据。 这一
    的头像 发表于 10-30 11:23 1430次阅读
    测试<b class='flag-5'>向量</b>是什么意思

    EtherCAT运动控制器进行自定义API封装例程

    本节课程我们主要讲解下正运动API函数封装原理以及自定义API封装例程。 正运动技术运动控制器均使用统
    发表于 10-26 15:11

    dvp头文件里面的API不能代码自动补全,找不到函数定义怎么解决?

    dvp头文件里面的API不能代码自动补全,找不到函数定义
    发表于 09-14 06:23

    M453VG6AE中断向量表起始地址是多少

    芯片:M453VG6AE 这款芯片中断向量表起始地址是多少共有多个中断向量
    发表于 08-29 08:27

    EtherCAT运动控制边缘控制器功能简介和自定义API封装例程

    上节课程我们介绍了全国产EtherCAT运动控制边缘控制器ZMC432H的硬件接口与功能,本节课程我们主要讲解一下正运动API函数封装原理以及自定义API封装例程。
    的头像 发表于 08-28 15:08 737次阅读
    EtherCAT运动控制边缘控制器功能简介和自<b class='flag-5'>定义</b><b class='flag-5'>API</b>封装例程

    全国产EtherCAT运动控制边缘控制器(二):统一的上位机API接口

    正运动API函数封装介绍与自定义API封装例程
    的头像 发表于 08-17 10:36 373次阅读
    全国产EtherCAT运动控制边缘控制器(二):统一的上位机<b class='flag-5'>API</b>接口

    基于Java的接口快速开发框架——magic-api

    magic-api 是一个基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口,无需定义Controller、Service、Dao、Mapper、XML、VO等Java对象
    发表于 07-19 11:42 440次阅读
    基于Java的接口快速开发框架——magic-<b class='flag-5'>api</b>

    支持向量机(多类问题之1类对K-1类方式)

    支持向量机可求解二分类问题。当需要求解多分类问题时,支持向量机可将二分类问题的求解方式转化为多分类问题的求解方式
    的头像 发表于 06-30 16:07 297次阅读

    想要自己实现bootloader,APROM中程序如何实现跳转,中断向量表如何设置?

    我要自己实现bootloader,bootloader在M487的APROM里面,APP也在APROM里面,如何实现从bootloader跳转到APP,中断向量表如何设置?
    发表于 06-27 08:39

    能遵循instruction的句向量模型

    向量技术是将连续的文本转化为固定长度的稠密向量,将句子映射到同一个向量空间中
    的头像 发表于 06-13 14:56 651次阅读
    能遵循instruction的句<b class='flag-5'>向量</b>模型

    api接口怎么使用

    本文就从API接口的维度,浅析API的概念以及为什么要了解它 一、API的概念 API,官方定义为应用程序编程接口。就是把是一些预先
    的头像 发表于 05-24 14:44 980次阅读

    API技巧集(二)

    (一)不规则窗口 Windows提供的只是标准的矩形窗口,要想建立一个不规则的窗口就需要调用API函数来实现。建立一个不规则的窗口,一般是先用创建区域的API函数建立一个不规则的区域,再用API函数
    的头像 发表于 05-22 16:49 690次阅读

    支持向量机(核函数的定义

    根据机器学习相关介绍(10)——支持向量机(低维到高维的映射),支持向量机可通过引入φ(x)函数,将低维线性不可分问题转换为高维线性可分问题。
    的头像 发表于 05-20 10:41 551次阅读
    支持<b class='flag-5'>向量</b>机(核函数的<b class='flag-5'>定义</b>)