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

    文章

    7494

    浏览量

    163909
  • API
    API
    +关注

    关注

    2

    文章

    1502

    浏览量

    62095
  • 编程语言
    +关注

    关注

    10

    文章

    1945

    浏览量

    34771

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

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

收藏 人收藏

    评论

    相关推荐

    OpenAI 发了支持 ESP32 的 Realtime API SDK

    “  昨晚 OpenAI 正式发布了 o3 模型,AI 圈片沸腾。作为电子工程师的我挠了挠头,好像和我没什么直接的关系  倒是 OpenAI 的另一个小发布,让我很感兴趣:可以在
    的头像 发表于 12-21 11:36 3062次阅读
    OpenAI 发了<b class='flag-5'>一</b><b class='flag-5'>个</b>支持 ESP32 的 Realtime <b class='flag-5'>API</b> SDK

    API接口有哪些常见的安全问题

    定义API种软件接口,它规定了软件组件之间的通信方式,使得不同的应用程序能够按照预定义的规则相互通信和交换数据。 既然是接口,那就涉及到数据格式。
    的头像 发表于 12-15 09:54 146次阅读
    <b class='flag-5'>API</b>接口有哪些常见的安全问题

    api驱动的云服务是什么意思?

    API驱动的云服务是指利用API技术来驱动和提供云服务的模式。在这种模式下,云服务提供商会公开系列的API接口,允许开发者或应用程序通过调用这些A
    的头像 发表于 11-14 10:06 203次阅读

    华为云CodeArts API助力企业数字化转型

    企业数字化转型的过程中,API发挥着至关重要的作用。随着企业业务规模的扩大和系统复杂性的增加,如何管理好API将成为企业面临的关键挑战。为了应对这迫切需求,
    的头像 发表于 11-09 16:07 491次阅读

    华纳云:使用 WireMock 在开发和测试中模拟 API 服务

    是 WireMock 发挥作用的地方。 WireMock 是开源工具,可以帮助开发人员创建模拟真实 API 行为的模拟服务器,为开发和测试提供受控环境。 假设您有
    的头像 发表于 10-25 16:46 367次阅读

    API :软件程序间沟通的桥梁

    什么是API?我们又是怎样利用API实现数据交付的? 从理论上来说,API就是应用程序编程接口。它是
    的头像 发表于 08-27 15:54 267次阅读

    如何使用espconn api实现Web服务器?

    我正在尝试使用 espconn api 实现 Web 服务器。 在些请求之后,我收到将此错误(err1,超过最大时间值)写入 uart,下
    发表于 07-18 07:46

    华为云发布 CodeArts API,为 API 护航

    4 月 10 日,华为云正式发布 API 全生命周期管理体化协作平台 CodeArts API,支持开发者高效实现 API 设计、开发、测试、托管、运维、变现的
    的头像 发表于 05-09 23:17 539次阅读
    华为云发布 CodeArts <b class='flag-5'>API</b>,为 <b class='flag-5'>API</b> 护航

    OpenAI API Key获取与充值教程:助开发者解锁GPT-4.0 API

    OpenAI 的 API Key,以及如何使用这个 Key 来调用 GPT-4.0 API。 第步:获取 OpenAI API Key 要开始使用 OpenAI 的服务,你首先需要
    的头像 发表于 04-28 16:35 1.1w次阅读
    OpenAI <b class='flag-5'>API</b> Key获取与充值教程:助开发者解锁GPT-4.0 <b class='flag-5'>API</b>

    请问头文件能不能定义变量

    最近在编译工程的时候,突然遇到了变量重复定义的问题,根据提示打开这几个 C 文件,并没有发现定义变量的地方。后来再找找,原来变量
    的头像 发表于 04-28 09:33 1179次阅读

    API安全风险显现,F5助API实现可信访问

    API在现代软件开发中占据着重要地位,是应用和数据的网关,实时API更是构建数字业务的基础。Salt Labs报告显示,过去6月中,API攻击活动数量快速增长了400%,可见
    的头像 发表于 04-17 16:09 462次阅读
    <b class='flag-5'>API</b>安全风险显现,F5助<b class='flag-5'>API</b>实现可信访问

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

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

    什么是中断向量偏移,为什么要做中断向量偏移?

    当MCU中有两段或以上程序的时候(第一个程序为用户BootLoader程序,其他的为APP程序,这个在前期视频《什么是ISP?什么是IAP》中有讲过),APP程序中都需要做中断向量偏移,那么什么是中断向量偏移,为什么要做中断
    的头像 发表于 01-30 09:47 1808次阅读
    什么是中断<b class='flag-5'>向量</b>偏移,为什么要做中断<b class='flag-5'>向量</b>偏移?

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

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

    Kubernetes Gateway API攻略教程

    Kubernetes Gateway API 刚刚 GA,旨在改进将集群服务暴露给外部的过程。这其中包括套更标准、更强大的 API资源,用于管理已暴露的服务。在这篇文章中,我将介绍 Gateway
    的头像 发表于 01-12 11:32 902次阅读
    Kubernetes Gateway <b class='flag-5'>API</b>攻略教程