第一个问题 从 C 程序员的角度来看,英特尔酷睿处理器与其 AMD 同类产品有什么区别?
相关的第二个问题 我认为有一些指令可以将英特尔酷睿与其他处理器区分开来,反之亦然。这些指示有多重要?编译器是否考虑了它们?如果有一些仅用于 Core 家族的特殊 Intel 编译器,性能会更好吗?
如果您正在编写用户级代码和大多数驱动程序代码,则没有太多差异(一个例外是某些指令集的可用性 - 对于不同的处理器可能会有所不同,见下文)。如果您正在编写处理特定于 CPU 的功能的内核代码(使用内部计数器进行分析、内存管理、电源管理、虚拟化),那么架构在实现上会有所不同,有时甚至很大。
大多数编译器不会自动利用 SSE 指令。但是,大多数确实提供了基于 SSE 的内在函数,这将允许您编写 SSE 感知代码。所有可用 SSE 级别的子集因每个处理器架构和制造商而异。
有关说明列表,请参阅此页面。按照链接查看支持特定指令的架构。此外,请阅读Intel和AMD架构开发手册,了解有关任何和所有指令集的支持和实现的详细信息。
根据Intel Core Wikipedia 文章,对SSE、SSE2和SSE3指令进行了显着改进。这些指令是 SIMD(相同指令,多数据),这意味着它们旨在将单个算术运算应用于值向量。它们当然很重要,并且已经被 GCC 等编译器使用了很长一段时间。
当然,最近的 AMD 处理器采用了最新的 Intel 指令,反之亦然。这是一个持续的趋势。