Compiler construction g+期间的CPU操作+;编撰

Compiler construction g+期间的CPU操作+;编撰,compiler-construction,g++,cpu,cpu-architecture,build-server,Compiler Construction,G++,Cpu,Cpu Architecture,Build Server,我想投资一个构建服务器来减少g++编译的时间。 由于源代码是可并行的,我们的想法是一个多核心系统。(32-48-64芯) 我的问题是,在编译过程中使用什么类型的cpu操作?(新的AMD cpu只有一个浮点单元用于两个内核) 通常CPU都是通过很多软件进行基准测试的,但是我找不到任何一个测试CPU编译的网站。哪些类型的软件与g++编译器的工作原理相似?(x264编码、压缩、加密?) 因此,基本问题是,当处理器专门用于编译代码时,它最重要的参数是什么 谢谢。编译器主要使用内存加载/存储操作和整数操作

我想投资一个构建服务器来减少g++编译的时间。 由于源代码是可并行的,我们的想法是一个多核心系统。(32-48-64芯)

我的问题是,在编译过程中使用什么类型的cpu操作?(新的AMD cpu只有一个浮点单元用于两个内核)

通常CPU都是通过很多软件进行基准测试的,但是我找不到任何一个测试CPU编译的网站。哪些类型的软件与g++编译器的工作原理相似?(x264编码、压缩、加密?)

因此,基本问题是,当处理器专门用于编译代码时,它最重要的参数是什么


谢谢。

编译器主要使用内存加载/存储操作和整数操作。它们根本不使用浮点或SIMD(加载/存储除外)

编译软件通常形成一个自己的基准类,而且是一个硬基准类。处理器制造商不喜欢这些基准测试,因为它通常很难优化


主要因素是内存带宽,而不是时钟频率。当然,这一切都是一起玩的。但是你想要对内存的广泛访问,你想要所有级别的大缓存。例如,您不希望时钟速度增加10%,缓存大小减少一半。

编译器主要使用内存加载/存储操作和整数操作。它们根本不使用浮点或SIMD(加载/存储除外)

编译软件通常形成一个自己的基准类,而且是一个硬基准类。处理器制造商不喜欢这些基准测试,因为它通常很难优化


主要因素是内存带宽,而不是时钟频率。当然,这一切都是一起玩的。但是你想要对内存的广泛访问,你想要所有级别的大缓存。例如,您不希望时钟速度增加10%,缓存大小减少一半。

编译器大多是整数任务,具有大量分支和符号查找/随机访问。因此,这与编码/压缩/加密等非常不同。因此,您可能需要具有强整数单元、短CPU管道以及可能的快速内存的东西。浮点和SIMD根本不重要。也就是说,我不完全确定,因为我只是在做一个有根据的猜测。这和神秘主义者说的差不多。短管道,至少中等数量的缓存。你的资料真的可以64倍并行吗?谢谢你的回答。该软件由定义良好的层次结构中的许多模块组成。代码库大约为1.5M行。不,我们用32个线程编译它。因此,64个线程也可以馈送,或者独立模块可以在VServer中的16-32个线程上并行化。编译器大多是整数任务,具有大量分支和符号查找/随机访问。因此,这与编码/压缩/加密等非常不同。因此,您可能需要具有强整数单元、短CPU管道以及可能的快速内存的东西。浮点和SIMD根本不重要。也就是说,我不完全确定,因为我只是在做一个有根据的猜测。这和神秘主义者说的差不多。短管道,至少中等数量的缓存。你的资料真的可以64倍并行吗?谢谢你的回答。该软件由定义良好的层次结构中的许多模块组成。代码库大约为1.5M行。不,我们用32个线程编译它。因此,64个线程也可以馈送,或者独立模块可以在VServer中的16-32个线程上并行化。