有没有办法告诉Bazel在构建可以使用的CPU核心数量时?
我在VMware Workstation上构建TensorFlow并且作为虚拟机我可以调整虚拟机的处理器和核心数。
在构建TensorFlow的过程中,我发现只使用一个核心。 当我给Workstation提供四个内核并构建TensorFlow时,它最终将系统停止到我必须重启的程度。
如果我等了几个小时(不管它一夜之间),它有时会返回,并出现以下错误:
gcc:内部编译器错误:已杀死(程序cc1plus)
虽然我可以使用虚拟机配置选项更改内核数量,但我更愿意这样做,而无需关闭并重新启动虚拟机。
答案 0 :(得分:13)
--local_resources availableRAM, availableCPU ,availableIO
此选项,需要三个以逗号分隔的浮点数 参数,指定Bazel可以采用的本地资源量 在安排构建和测试活动时要考虑到。选项 预计可用RAM量(以MB为单位), CPU核心数(以1.0为单位) 代表单个完整核心)和工作站I / O能力(用 1.0表示平均工作站)。默认情况下,Bazel将直接从系统估计RAM的数量和CPU内核的数量 配置并假设1.0 I / O资源。
如果使用此选项,Bazel将忽略这两个选项 --ram_utilization_factor。
答案 1 :(得分:4)
.bazelrc的一些示例
build --local_ram_resources=HOST_RAM*.5 --local_cpu_resources=HOST_CPUS-1 (leave one core free)
或
build --local_cpu_resources=1 (use a single core)
请参见https://docs.bazel.build/versions/master/command-line-reference.html#flag--local_cpu_resources
不建议使用当前接受的答案。