首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Yocto构建Maxium PARALLEL_MAKE,BB_NUMBER_THREADS

Yocto构建Maxium PARALLEL_MAKE,BB_NUMBER_THREADS
EN

Stack Overflow用户
提问于 2022-01-05 17:46:55
回答 1查看 2K关注 0票数 0

最近,我试图用保留PARALLEL_MAKEBB_NUMBER_THREADS空白的方式启动yocto任务,例如注释掉,然后在主机上用48或64 vCPU启动构建。构建失败了。在32 vCPU的情况下,它仍然工作。Yocto仍然是老Krogoth,目前无法更新。有没有人知道是否有超过32 vCPU的限制?这仅仅是针对较老的Yocto版本,还是一般的问题?

Update:该错误与一个自定义的方法有关,该菜谱用于编译一个rnnoise:

../rnnoise-plugin/1.0-r0/temp/log.do_compile.1449627

代码语言:javascript
复制
rnnoise-plugin/1.0-r0/asound-pcm-plugin-rnnoise.c:16:28: fatal error: alsa/asoundlib.h: No such file or directory
#include <alsa/asoundlib.h>
                            ^

如前所述,只有在48或64 vCPU主机上编译时,PARALLEL_MAKEBB_NUMBER_THREADS才会出现此错误。如果我设置了PARALLEL_MAKE="-j 32"BB_NUMBER_THREADS="32",那么它编译时不会出现任何错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-06 10:30:55

在使用这么多线程进行编译时,您似乎遇到了竞争条件。

yocto引用建议设置PARELLEL_MAKE,因此make在使用多个物理CPU时最多使用20个线程。如果您的系统只有一个CPU,这可能是一个虚拟化问题。

对于单个套接字系统(即一个CPU),在构建过程中不必重写此变量以获得最佳的并行性。但是,如果您有非常大的系统使用多个物理CPU,则可能需要确保PARALLEL_MAKE变量的设置不高于"-j 20“。

制作

为了提高构建速度,您可以尝试通过修补适当的Makefile (调试并行使竞赛)来解决这个依赖关系问题。

编辑

当覆盖特定包的配方时,可以为其设置PARALLEL_MAKE,这允许使用make -j 2编译一个特定的包,例如,其他包使用最大的并行性。

因此,在发生依赖问题的包的配方中将PARALLEL_MAKE设置为较低的值可能是一个合适的解决办法。

但是请记住,yocto引用还建议将BB_NUMBER_THREADS (没有特定于包的参数)限制在具有多个CPU的大型系统上,这可能是使用硬件虚拟化时的情况。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70597349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档