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

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

3天内不再提示

FPGA之选择多个jobs能加快实现速度么?

OpenFPGA 来源:未知 作者:徐起 2021-02-11 11:33 次阅读

在用Vivado对工程编译时,会弹出下面的对话框:

备注:虽然FPGA不能叫编译,但很多工程师为了方便起见,将综合+实现+生成bit文件的过程统称为编译了,这种说法大家理解就好。

a9e61696-5841-11eb-8b86-12bb97331649.png

很多工程师都会选择多个jobs进行编译,以为这样会更快一些,而且这个jobs的数量跟本地CPU的线程数是一致的,这就更加让工程师们认为这个选项就是多线程编译了。

但对Vivado更加熟悉的工程师,肯定会知道,Vivado中的多线程是通过tcl脚本去设置的,而且目前最大可使用的线程数是8个,那这个jobs跟多线程有什么关系呢?使用多个jobs能加快编译速度么?

我们首先来看jobs的定义,在UG904中这样写道:

aa2656c0-5841-11eb-8b86-12bb97331649.png

因此,这个jobs是我们在同时有多个runs在跑的时候才起效的,如果只有一个Design run,那这个参数是不起效的。

对于多线程,在UG904中是这样说的:

aab33568-5841-11eb-8b86-12bb97331649.png

Implementation过程,最多使用8个线程,在Windows上,默认是2线程;在Linux上,默认是8线程;我们可以通过tcl脚本改变线程数,使用方式为:

set_param general.maxThreads 8

也可以获取当前使用的线程数:

get_param general.maxThreads

为了更直观的体现jobs和threads的使用方式,下面进行惨无人道的试验:

首先,处理器Intel的i7-8700k,6核12线程,下面记录的时间仅是Implementation的时间,不包括Synthesis。

Test1为默认的2线程,最大jobs(12)的情况下,需要19min;

Test2把jobs降为1,线程还是2,仍然需要19min,说明在只有一个Design Run的时候,jobs的数量不影响编译时间;

Test3是采用8线程,jobs跟Test1相同,都是12,此时需要17min,比默认的2线程快了2min;

Test4是在8线程的基础上,把jobs降为1,此时还是17min,再次验证了单个design run时,jobs的数量不影响编译时间;

Test5是总共有6个Implementation的Design runs,采用8线程12jobs同时跑;

在下面这个图中也可以看出来,此时CPU的利用率已经很高了。

ab6239aa-5841-11eb-8b86-12bb97331649.png

Test6也是6个Implementation的Design runs,8线程,但jobs设置为1,此时可以看出,只有一个design run在跑,其他都在等待中,要等这个前一个跑完后,后面的才会开始。

Test112219min

Test21219min

Test312817min

Test41817min

Test512838min

Test618120min

Numjobsthreadstime

从上面的试验,我们可以总结如下:

对于单个design run,jobs的数量不影响编译速度;

在Windows上,默认的线程数是2,我们可以通过tcl来改变线程数,但每打开工程后都要重新设置一下,多线程会使综合实现的时间缩短,但效果并不是很明显;网上有个工程师说本来2线程1小时编译完的工程,用了8线程后,编译时间为50分钟;

在多个design runs时,jobs的数量是当前可以同时运行的design run的个数。

原文标题:Vivado中jobs和threads的区别?选择多个jobs能加快实现速度么?

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

责任编辑:haq

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

    关注

    1601

    文章

    21296

    浏览量

    593081
  • 编译
    +关注

    关注

    0

    文章

    613

    浏览量

    32371
  • Vivado
    +关注

    关注

    18

    文章

    789

    浏览量

    65091

原文标题:Vivado中jobs和threads的区别?选择多个jobs能加快实现速度么?

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

收藏 人收藏

    评论

    相关推荐

    stm32h743是不是可以直接用ICache加快一些速度

    stm32h743是不是可以直接用ICache加快一些速度,而不用DCache,DCache配置ram麻烦?
    发表于 03-08 08:01

    大家有全面转型使用国产FPGA

    大家有全面转型使用国产FPGA?比如高云、紫光、安路等等
    发表于 03-06 13:43

    vlookup存在多个结果如何选择

    符合条件的结果。索引列是一个递增的数字序列,我们可以使用该序列实现多个匹配结果的按顺序选择。例如,我们可以选择第一个或最后一个匹配结果,或者使用其他数字来指定要
    的头像 发表于 12-01 10:43 669次阅读

    请问使用FPGA驱动AD9914芯片,加了散热片依然很烫正常

    请问使用FPGA驱动贵公司AD9914芯片,使内部PLL至3.2GHz,产生225-512Mhz的调频信号,或者单音信号,芯片过烫,60℃以上,加了散热片依然很烫,请问正常
    发表于 11-29 06:37

    FPGA入门怎样选择合适的板子?

    市面上FPGA芯片占有率较高的是xilinx,其次是altera,这两家市场占有率之和达到百分八十以上, 具体选择哪家厂商的芯片入门呢?这两家的开发环境也有所不同,哪家的或者说是具体的哪款开发板适合初学者由浅入深得学习
    发表于 11-17 16:42

    基于FPGA速度和位置测量板卡设计实现

    电子发烧友网站提供《基于FPGA速度和位置测量板卡设计实现.pdf》资料免费下载
    发表于 11-08 09:49 0次下载
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>速度</b>和位置测量板卡设计<b class='flag-5'>实现</b>

    如何加快32的运行速度

    如何会加快32的运行速度
    发表于 11-06 07:58

    FPGA项目开发同步信号和亚稳态

    FPGA项目开发同步信号和亚稳态 让我们从触发器开始,所有触发器都有一个围绕活动时钟沿的建立(setup time)和保持窗口(hold time),在此期间数据不得更改。如果该窗口中的数据
    发表于 11-03 10:36

    为什么HAL库编译这么慢?有什么加快编译速度的好办法吗?

    有什么加快编译速度的好办法
    发表于 10-27 06:23

    FPGA在一个时钟周期可以读取多个RAM数据吗?

    FPGA在一个时钟周期可以读取多个RAM数据吗?如何理解FPGA中存放程序的RAM? FPGA在一个时钟周期可以读取多个RAM数据
    的头像 发表于 10-18 15:28 705次阅读

    hash算法在FPGA中的实现(1)

    FPGA的设计中,尤其是在通信领域,经常会遇到hash算法的实现。hash算法在FPGA的设计中,它主要包括2个部分,第一个就是如何选择一个好的hash函数,减少碰撞;第二个就是如何
    的头像 发表于 09-07 17:01 581次阅读
    hash算法在<b class='flag-5'>FPGA</b>中的<b class='flag-5'>实现</b>(1)

    使用Xilinx FPGA实现OFDM系统

    OFDM中调制使用IFFT,解调使用IFFT,在OFDM实现系统中,FFT和IFFT时必备的关键模块。在使用Xilinx的7系列FPGA(KC705)实现OFDM系统时,有以下几种选择
    的头像 发表于 07-10 10:50 648次阅读
    使用Xilinx <b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>OFDM系统

    FPGA速度-面积互换原则设计

    速度-面积互换原则是贯穿FPGA设计的重要原则:速度是指工程稳定运行所能达到的最高时钟频率,通常决定了FPGA内部寄存器的运行时序;面积是指工程运行所消耗的资源数量,通常包括触发器
    的头像 发表于 06-09 09:36 895次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>速度</b>-面积互换原则设计

    FPGA资料

    )的一种。这个时间比著名的摩尔定律出现的时间晚 20 年左右,但是 FPGA 一经发明,后续的发展速度快,超出大多数人的想象。 图 1 中给出了 FPGA 芯片的实物图: 图
    发表于 05-30 20:40

    推挽电路如何加快控制速度

    在做信号控制以及驱动时,为了加快控制速度,经常要使用推挽电路。推挽电路可以由两种结构组成:上P下N,上N下P。其原理图分别如下所示。
    的头像 发表于 05-17 09:33 1036次阅读
    推挽电路如何<b class='flag-5'>加快</b>控制<b class='flag-5'>速度</b>