Vivado中jobs和threads的区别是什么

发布时间:2021-08-09 14:38:15 作者:Leah
来源:亿速云 阅读:401

这篇文章将为大家详细讲解有关Vivado中jobs和threads的区别是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

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

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

Vivado中jobs和threads的区别是什么  


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

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

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


  Vivado中jobs和threads的区别是什么  

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

Vivado中jobs和threads的区别是什么  


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

Vivado中jobs和threads的区别是什么  


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。

Vivado中jobs和threads的区别是什么

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

Vivado中jobs和threads的区别是什么



Vivado中jobs和threads的区别是什么



Numjobsthreadstime
Test112219min
Test21219min
Test312817min
Test41817min
Test512838min
Test618120min

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

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

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

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

关于Vivado中jobs和threads的区别是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

推荐阅读:
  1. The number of Oracle redo threads (2) is not the same as the number of checkpoint threads (1)
  2. golang中“=”和“:=”的区别是什么

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

vivado jobs threads

上一篇:MySQL怎么导入导出大量数据

下一篇:mysql mysqldump怎么实现只导出表结构或只导出数据

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》