gpt4 book ai didi

go - 我可以在至强融核(骑士登陆)处理器上编译Go程序吗?

转载 作者:行者123 更新时间:2023-12-03 10:08:33 24 4
gpt4 key购买 nike

我是一个业余爱好者,喜欢在Go中运行我自己的程序,而且至强融核处理器的年龄越来越大,它们的价格也越来越便宜。如此便宜,我可以在2015/16年以低于$ 1000的价格 build 一个双插槽机器
我试图找出是否可以在这些程序上运行Go程序。从我所见,this thread表示它们不会运行(并尝试gccgo),但是它表示不会运行,因为它部分运行在x87 ISA上。令人困惑的是,在Go发行说明they say they're dropping x87 support in 1.16中,暗示过去已支持它。我在其他线程中看到,所有程序都将在兼容性层上运行,但这是一个非常慢的层,只能访问cpu缓存的一小部分。
我觉得我的元素越来越远了。我想知道使用Xeon Phi的人是否知道它将运行Go代码?或者只是一般而言,在启动Ubuntu(或FreeBSD, something that I've seen done and is listed in motherboard specs)之后,哪些事情将无法正常工作,将会怎样?
我感谢所有帮助!

最佳答案

您基于对Knight的角落的引用对您的Knights Landing感到担忧:

The Knight's Corner processor is based on an x86-64 foundation, yes, but it in fact has its own floating-point instruction set—no x87, no AVX, no SSE, no MMX... Oh, and then you can throw all that away when Knight's Landing (KNL) comes out.


“全部扔掉”意味着所有的担忧和不兼容。 KNL基于Silvermont,并且完全兼容x86-64(包括用于执行FP数学的两种标准方法的x87,SSE和SSE2)。它还支持AVX-512F,AVX-512ER和 a few other AVX-512 extensions,以及AVX和AVX2以及SSE到SSE4.2。除了一组不同的AVX-512扩展之外,它非常类似于Skylake服务器CPU。
这样做的目的恰好是解决您担心的问题:因此,任何旧式二进制文件都可以在KNL上运行。为了获得良好的性能,您希望在繁重的循环中运行使用AVX-512向量进行矢量化的代码,但是其余Linux发行版中的所有周围代码和其他程序或任何可以正常运行的代码使用x87和/或SSE的沼泽标准代码。

Knight's Corner(第一代商用至强融核)在基于P5-Pentium的内核中具有其自己的AVX-512变体/前体,而没有其他FP硬件。
Knight's Landing(第二代商业Xeon Phi)基于Silvermont,带有AVX-512,并且是第一个可用作“主机”处理器(可启动)而不是协处理器的处理器。
这种“主机”模式是要包括足够的硬件来解码和执行x87和SSE的另一个原因:如果您在KNL上运行整个系统,则您更有可能想要执行一些对性能敏感的旧版二进制文件任务,不仅是专门为其编译的二进制文件。
但是,它的x87性能不是很好:就像每2个时钟一个标量 fmul( https://agner.org/optimize)。对比2时钟SSE mulsd(0.5c配方吞吐量)。其他SSE/AVX数学具有相同的0.5c吞吐量,包括AVX-512 vfma132ps zmm可在一条指令中执行16倍单精度融合加法运算。
因此,希望Go的编译器使用的x87不多。在XMM寄存器中,以64位模式(C编译器及其数学库使用)进行标量数学的通常方法是SSE。 x86-64 C编译器仅将x87用于 long double之类的类型。

关于go - 我可以在至强融核(骑士登陆)处理器上编译Go程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65801806/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com