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
    +关注

    关注

    1627

    文章

    21684

    浏览量

    602278
  • 编译
    +关注

    关注

    0

    文章

    654

    浏览量

    32822
  • Vivado
    +关注

    关注

    19

    文章

    808

    浏览量

    66367

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

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

收藏 人收藏

    评论

    相关推荐

    TLC5602实现输出40MHZ的速度吗?

    请问这颗DAC实现输出40MHZ的速度吗,两个电压轨,占空比50%就行,有其它的推荐吗,设计简单,性价比高一点的。
    发表于 11-26 07:11

    LMK05318在TICS Pro中怎样设置,可以加快同步的速度实现几分钟之内相位同步?

    同步可能需要数小时。请问在TICS Pro中怎样设置,可以加快同步的速度实现几分钟之内相位同步?可以接受同步过程中输出频率的偏差,但要求相位快速同步。附件是我这次的使用的配置文件,请问这样的配置是否有问题?
    发表于 11-12 06:46

    TLV320AIC3104数据表中的插图,请问1实现调音量吗?2实现多通道混音吗?

    TLV320AIC3104数据表中的插图,请问1实现调音量?2实现多通道混音
    发表于 11-04 06:36

    tlv320aic3106的tdm模式实现多个mic的信号分时复用吗?

    我想问一下,tlv320aic3106的tdm模式,实现多个mic的信号分时复用吗?
    发表于 10-15 08:34

    同步与多个FPGA接口的千兆样本ADC

    电子发烧友网站提供《同步与多个FPGA接口的千兆样本ADC.pdf》资料免费下载
    发表于 10-10 11:32 0次下载
    同步与<b class='flag-5'>多个</b><b class='flag-5'>FPGA</b>接口的千兆样本ADC

    声发射系统的技术指标:最高采样速度选择

    虽然理论上采样速度越高获得的数字信号越完整,但考虑到实际应用的成本,无法实现无限高甚至过高,只能选择合理(即满足应用要求)的采样速度。例如,采样速度
    的头像 发表于 08-26 17:30 306次阅读
    声发射系统的技术指标:最高采样<b class='flag-5'>速度</b>的<b class='flag-5'>选择</b>

    如何在FPGA实现神经网络

    随着人工智能技术的飞速发展,神经网络作为其核心组成部分,已广泛应用于图像识别、语音识别、自然语言处理等多个领域。然而,传统基于CPU或GPU的神经网络计算方式在实时性、效比等方面存在诸多挑战。现场
    的头像 发表于 07-10 17:01 1803次阅读

    FPGA实现什么样的算法?

    FPGA功能如此强大,请问用FPGA实现或者比较适合实现什么样的算法?
    发表于 05-26 20:18

    中高端FPGA如何选择

    随着国产FPGA的崛起,中低端产品中,很多国产FPGA都是不错的选择,性价比很高。高端FPGA中,往往还是以AMD和Intel为主,但最近这几年,Achronix公司的
    发表于 04-24 15:09

    电池的参数和装机容量是如何选择的?

    首先,储电池的参数选择是一个复杂而精细的过程,涉及电池类型、电压等级、能量密度、功率密度、循环寿命等多个维度。
    的头像 发表于 04-18 15:26 774次阅读

    fpga实现什么功能

    FPGA(现场可编程门阵列)是一种可编程逻辑芯片,其主要作用和功能体现在多个方面。
    的头像 发表于 03-27 14:11 1291次阅读

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

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

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

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

    FPGA输入的时钟信号必须是方波?正弦波会有影响

    FPGA输入的时钟信号必须是方波?正弦波会有影响FPGA是一种可编程逻辑器件,通常用于实现数字电路。输入时钟信号是
    的头像 发表于 01-31 11:31 3331次阅读

    FPGA系列速度等级”选型介绍

    大家在进行FPGA选型时都会看见一个参数:Speed Grade,这就是芯片的速度等级。
    的头像 发表于 01-08 09:20 3077次阅读
    <b class='flag-5'>FPGA</b>系列<b class='flag-5'>之</b>“<b class='flag-5'>速度</b>等级”选型介绍