取消
显示结果 
搜索替代 
您的意思是: 
Highlighted
Participant
Participant
26,476 次查看
注册日期: ‎05-20-2019

如何在vitis统一平台中结合HLS程序和用vitis ai编译出的模型

转到解答

我目前有一个程序由两部分构成:一部分是一个神经网络模型,另一部分利用神经网络模型的输出进行计算。我想把这两部分都部署到PL上运行。我用Vitis ai 把网络模型转换成了elf文件。然后将其余部分利用HLS进行了编写。但是我没有找到相关教程说明了 如何在vitis统一平台中结合HLS程序和vitis ai。

 

我发现 https://developer.xilinx.com/en/articles/ultra96--v1--with-vitis--dpu-integration-and-mipi-platform-tutor.html 是一个相近的例子,它将一个vitis ai编译的模型和mipi结合了起来。但是它的工作流程是:在vivado中编译mipi+dpu的硬件平台→petalinux生成sysroot→在Vitis中调用硬件平台。

而且由于开发者网站刚开始简历和似乎xilinx放弃了对ultra96的 vitis ai支持,这个教程中的文件下载链接是没有的。

另外,这个教程中提到要在vitis统一平台上取消HLS库的链接,因此我认为它并不适合我的需要。

再另外,我也没有很看懂这个教程,比如其中有一步提到了从dpu.xo中导入用于硬件加速的函数,不知道dpu.xo是从哪里来的。

 

我希望的工作流程是:开发HLS内核,编译vitis ai模型 → 在vitis统一平台上统一编写两个内核的Host代码

 

因此有以下几个问题:

1.请问目前我希望的这个流程是可行的么,有没有相关教程

2.如果可行,vitis ai编译的模型 和 HLS内核 是不是也可以进行内核到内核的数据传输 ? 

3.如果不可行,那么如下流程: HLS内核→ vivado自定义ip ->vivado中连接自定义Ip和dpu -> vitis统一平台开发 是可行的么,而且这个流程受限于上述开发者文章未提供教程文件,我目前也无法完成。

标记 (1)
1 个已接受解答

已接受的解答
Highlighted
Xilinx Employee
Xilinx Employee
19,103 次查看
注册日期: ‎07-17-2008

回复: 如何在vitis统一平台中结合HLS程序和用vitis ai编译出的模型

转到解答

这个demo是应用于Alveo U50的平台,目前kernel文件还没有公开,如有需要,可联系你的FAE做进一步评估和支持。

另外,我们2019 XDF有过edge platform的HLS+DPU demo,也没有公开发布到github,内部确认了一下,可以通过Ezmove共享给你。如有需要,请私信我你的邮箱。

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------

在原帖中查看解决方案

19 条回复19
Highlighted
Xilinx Employee
Xilinx Employee
20,852 次查看
注册日期: ‎07-17-2008

回复: 如何在vitis统一平台中结合HLS程序和用vitis ai编译出的模型

转到解答

可以看看这个全流程加速的视频,可能能解答你的部分疑问。

http://xilinx.eetrend.com/content/2020/100048799.html

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 项奖励
Highlighted
Participant
Participant
19,592 次查看
注册日期: ‎05-20-2019

回复: 如何在vitis统一平台中结合HLS程序和用vitis ai编译出的模型

转到解答

非常感谢,确实对我有所帮助。不过请问这个教程里面的demo提供下载么,我没有找到下载地址

0 项奖励
Highlighted
Xilinx Employee
Xilinx Employee
19,104 次查看
注册日期: ‎07-17-2008

回复: 如何在vitis统一平台中结合HLS程序和用vitis ai编译出的模型

转到解答

这个demo是应用于Alveo U50的平台,目前kernel文件还没有公开,如有需要,可联系你的FAE做进一步评估和支持。

另外,我们2019 XDF有过edge platform的HLS+DPU demo,也没有公开发布到github,内部确认了一下,可以通过Ezmove共享给你。如有需要,请私信我你的邮箱。

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------

在原帖中查看解决方案

Highlighted
Participant
Participant
18,577 次查看
注册日期: ‎05-20-2019

回复: 如何在vitis统一平台中结合HLS程序和用vitis ai编译出的模型

转到解答

2019 XDF的demo我在github上阅读过对应的文档,它正是我所需要的。邮箱已私信。非常感谢您的帮助!!!

0 项奖励
Highlighted
Contributor
Contributor
16,190 次查看
注册日期: ‎11-21-2019

回复: 如何在vitis统一平台中结合HLS程序和用vitis ai编译出的模型

转到解答

请问能提供一下2019XDF的demo文档链接吗?如果能提供样例程序供我们学习就更好了。: )

0 项奖励
Highlighted
Contributor
Contributor
739 次查看
注册日期: ‎07-15-2019

回复: 如何在vitis统一平台中结合HLS程序和用vitis ai编译出的模型

转到解答

@graces  @kangyifeizx 

 您好

   请问可以也提供给我一份2019XDF的HLS+vitis ai 的demo么,我正在做相关工作,想学习下。

   杨立恒

标记 (1)
0 项奖励
Highlighted
Observer
Observer
340 次查看
注册日期: ‎03-29-2020

回复: 如何在vitis统一平台中结合HLS程序和用vitis ai编译出的模型

转到解答
大体了解了Vitis AI使用步骤,经过vai_c_tensorflow的编译会产生一个elf文件,可是后续对结果的处理和对ZCU104的I/O控制都不能在Vitis AI中完成,所以需要版主那种综合Vitis和Vitis AI来开发的情况。 我的问题就是:有没有一个关于ZCU系列(或者MPSoC)的教程或者例程来综合使用Vitis和Vitis AI,版主希望的流程:开发HLS内核,编译vitis ai模型 → 在vitis统一平台上统一编写两个内核的Host代码是否可行呢??因为神经网络算法只是工程的一部分(完成图像的分类),另外一部分需要借助Vitis平台来完成(做一些神经网络的图像预处理和后处理,根据图像分类结果控制ZCU104的PMODE接口等)。 这样的开发教程或者例程有没有呢?? 邮箱地址:1435677902@qq.com 谢谢您的查看和回复 Ztone
0 项奖励
Highlighted
Observer
Observer
340 次查看
注册日期: ‎03-29-2020

回复: 如何在vitis统一平台中结合HLS程序和用vitis ai编译出的模型

转到解答
大体了解了Vitis AI使用步骤,经过vai_c_tensorflow的编译会产生一个elf文件,可是后续对结果的处理和对ZCU104的I/O控制都不能在Vitis AI中完成,所以需要版主那种综合Vitis和Vitis AI来开发的情况。 我的问题就是:有没有一个关于ZCU系列(或者MPSoC)的教程或者例程来综合使用Vitis和Vitis AI,版主希望的流程:开发HLS内核,编译vitis ai模型 → 在vitis统一平台上统一编写两个内核的Host代码是否可行呢??因为神经网络算法只是工程的一部分(完成图像的分类),另外一部分需要借助Vitis平台来完成(做一些神经网络的图像预处理和后处理,根据图像分类结果控制ZCU104的PMODE接口等)。 这样的开发教程或者例程有没有呢?? 谢谢您的查看和回复 Ztone
0 项奖励
Highlighted
Observer
Observer
689 次查看
注册日期: ‎03-29-2020

回复: 如何在vitis统一平台中结合HLS程序和用vitis ai编译出的模型

转到解答

经过Vitis AI的vai_c_tensorflow的编译,会产生一个.elf文件,可Vitis AI无法完成神经网络图像分类后的后续操作,所以需要借助Vitis来进行综合的开发。

我的问题是:有没有关于ZCU系列(或者MPSoC)的参考教程或者例程来综合使用Vitis和Vitis AI。因为工程一部分需要借助Vitis AI来完成图像的分类(ResNet50、SSD等模型),另一部分需要根据分类的结果来进行控制(比如控制ZCU104的PMODE接口、神经网络分类后的后处理等)。

版主所提出的工作流程是否可行(开发HLS内核、编译Vitis AI模型--》Vitis平台上统一编写两个内核的Host代码)????

因为Vitis AI只能完成工程的一部分工作,后续的工作应该如何开发,需要一些关于ZCU的Vitis AI和Vitis/Vivado HLS的综合开发教程/例程

谢谢您的查看和回复

Ztone

Highlighted
Participant
Participant
687 次查看
注册日期: ‎10-18-2019

回复: 如何在vitis统一平台中结合HLS程序和用vitis ai编译出的模型

转到解答

请问Artix7系列的开发板也指出Vitis AI 开发工具吗?

我们需要将模型迁移到Artix7系列FPGA中。

0 项奖励
Highlighted
Participant
Participant
642 次查看
注册日期: ‎05-20-2019

回复: 如何在vitis统一平台中结合HLS程序和用vitis ai编译出的模型

转到解答

代码的版权是属于Xilinx的,在没有得到Xilinx的允许的情况下我无法分享,建议向xilinx请求提供,而且目前代码也不是ready to run的,它依赖于xilinx私有git仓库,他们不把代码放到github上去应该也是还在做剥离工作。

Highlighted
Participant
Participant
641 次查看
注册日期: ‎05-20-2019

回复: 如何在vitis统一平台中结合HLS程序和用vitis ai编译出的模型

转到解答
代码的版权是属于Xilinx的,在没有得到Xilinx的允许的情况下我无法分享,建议向xilinx请求提供,而且目前代码也不是ready to run的,它依赖于xilinx私有git仓库,他们不把代码放到github上去应该也是还在做剥离工作。
0 项奖励
Highlighted
Participant
Participant
628 次查看
注册日期: ‎05-20-2019

回复: 如何在vitis统一平台中结合HLS程序和用vitis ai编译出的模型

转到解答

我简述一下目前我了解到的构建流程,供大家参考

1.首先根据xilinx官方github中的dpu构建流程使用v++ 构建dpu.xo

2.使用v++或者Vitis平台构建自定义内核产生self.xo

3.使用v++将前述两个xo文件链接成成一个bin.xclbin文件

4.编写Host程序,

首先使用opencl将bin.xclbin烧入PL。之后神经网络和自定义加速核是两套独立的调用流程

对于神经网络部分,host程序与vitis-ai相关示例一致直,首先载入网络的elf文件,然后调用相关dpu函数输入与输出

对于自定义内核部分,host程序与vitis统一平台应用程序加速流程一直,使用opencl进行调用

两个部分的数据传递要在host程序中手动完成,就是正常的c的参数传递

比方说:

 

//vitis-ai流程函数
void netFunc(int intput,int output){} //vitis统一平台应用程序加速流程函数 void accKernel(int intput,int output){..} void main(){ int mainInput,temp,mainOutput; netFunc(mainInput,temp); accKernel(temp,mainOutput); cout<<mainOutput; }

我其实不熟悉c/c++,上面可能有错误,理解意思就好Orz

 

 

目前存在的问题:

1.从代码上来看dpu产生的数据要传回ps,再传给自定义内核,无法实现k2k。问题似乎在于dpu目前不支持k2k,所以只能采用这种方法。

2.综合经常失败,且未报错。使用高性能服务器似乎可以解决这个问题,可能是我虚拟机资源不足,但是有的时候在虚拟机中又可以正常运行。

Highlighted
Observer
Observer
610 次查看
注册日期: ‎03-29-2020

回复: 如何在vitis统一平台中结合HLS程序和用vitis ai编译出的模型

转到解答

应该怎么获得Xilinx的支持呢???

通过Vitis AI的量化器和编译器产生的elf文件是不是属于流程中的第一步???可通过Vitis AI编译器产生的文件并没有.xo结尾的文件呢。

V++是独立于Vitis和Vitis AI的么???

写入PL的elf文件是必须是一个么???

难道不能通过Vitis和Vitis AI来完成这这个工程么???

是不是需要用HLS来在Vitis 平台上构建自定义的内核???

谢谢您的查看和回复

0 项奖励
Highlighted
Contributor
Contributor
599 次查看
注册日期: ‎11-21-2019

回复: 如何在vitis统一平台中结合HLS程序和用vitis ai编译出的模型

转到解答

支持一下,大部分与这位网友意见相同,以下部分是我的观点

v++将xo文件link成xclbin,然后拷贝到板子上的某个lib目录。(应该是网友的口误,估计官网为了统一Vitis的编程模型)

synthesis确实会有失败的现象,我也只是在虚拟机里尝试一下,没有大内存的服务器。

由于我是新手,其他部分我完全不懂,希望这方面有更多的资源可以参考。

0 项奖励
Highlighted
Participant
Participant
571 次查看
注册日期: ‎05-20-2019

回复: 如何在vitis统一平台中结合HLS程序和用vitis ai编译出的模型

转到解答
1.我都是在论坛发帖等回复的Orz,感觉Xlinx论坛员工都挺敬业的。据说有售后工程师,我虽然买过ZCU板子,但是也不知道怎么获取售后,手动捂脸。
2.关于elf文件和xclbin文件之前笔误搞混了,已经修正,可以再看一下。dpu.xo是编译出的dpu,不是具体网络,关于编译方法参见xilinx github的vitis-ai库中的DPU-TRD文件夹
3.v++是vitis提供的编译器,相当于c++,装完Vitis IDE就有的
4.同上,写入PL的是xclbin
5.同上,流程是基于Vitis和vitis ai的
6.我是用到hls在vitis中构建的自定义内核。
0 项奖励
Highlighted
Participant
Participant
571 次查看
注册日期: ‎05-20-2019

回复: 如何在vitis统一平台中结合HLS程序和用vitis ai编译出的模型

转到解答
非常感谢您的指正,确实笔误把elf和xclbin搞混了。
我在64G内存的服务器上跑综合感觉失败概率小一点,供参考。
0 项奖励
Highlighted
Participant
Participant
373 次查看
注册日期: ‎05-20-2019

回复: 如何在vitis统一平台中结合HLS程序和用vitis ai编译出的模型

转到解答
0 项奖励
Highlighted
Observer
Observer
251 次查看
注册日期: ‎03-29-2020

回复: 如何在vitis统一平台中结合HLS程序和用vitis ai编译出的模型

转到解答

您好,您第一步指出构建的dpu.xo是不是在Vitis-AI/DPU-TRD/prj/Vitis文件夹下通过make KERNEL=DPU_SM DEVICE=ZCU102来生成一系列的新文件,其中在binary_container_1文件夹下有一个dpu.xo???

是不是只需要这个dpu.xo文件就可以,其他的在您描述的过程中暂时还用不到???

另外,我想问您,您总结的这个开发流程是通过您发的那个网址总结出来的么

xi

0 项奖励