标签: intel

为什么在没有它的处理器上报告支持超线程?

我正在尝试收集系统信息并在Intel Xeon E5420上注意到以下内容:

执行后CPUID(EAX=1),EDX [28]设置,表示支持超线程,尽管处理器在英特尔网站上列为不支持超线程(ark.intel.com)

有没有人对此有解释?

x86 intel hyperthreading cpuid

9
推荐指数
1
解决办法
993
查看次数

为什么从AT&T切换到Intel语法使本教程使用GAS进行段错误?

我正在浏览http://www.ibm.com/developerworks/linux/library/l-gas-nasm/index.html上的一些教程,以熟悉x86/x64.本教程代码使用提供的代码编译和运行,没有打嗝,该代码使用AT&T语法:

.global main
.text
main:                               # This is called by C library's startup code
    mov     $message, %rdi          # First integer (or pointer) parameter in %edi
    call    puts                    # puts("Hello, World")
    ret                             # Return to C library code
message:
    .asciz "Hello, World"           # asciz puts a 0x00 byte at the end
Run Code Online (Sandbox Code Playgroud)

但是,当我将此代码转换为Intel语法时,我收到"分段错误"错误.

.intel_syntax noprefix
.global main
.text
main:                               # This is called by C library's startup code
    mov     rdi, message            # First integer (or pointer) parameter in %edi
    call …
Run Code Online (Sandbox Code Playgroud)

x86 assembly intel gnu-assembler att

9
推荐指数
1
解决办法
1844
查看次数

sin(x)仅为GLSL片段着色器Intel HD4000上的中等大输入返回4个不同的值

我有一个用GLSL编写的简单的OpenGL 3.3片段着色器.从本质上讲,我正在评估sin(x)适度大的x(10,000到2,000,000之间),如下所示:

#version 330
out vec4 fColor;
void main() {
  fColor = vec4(sin(gl_FragCoord.x * gl_FragCoord.y));
}
Run Code Online (Sandbox Code Playgroud)

它在我的NVidia显卡上工作正常,但在我的Intel HD4000上,正弦仅返回四个不同的值(+/- 1.0和大约+/- 0.3),高于大约10,000的输入.

系统:Windows 64bit,(Intel)驱动程序版本15.28.20.64.3347.

我的问题:这是一个错误吗?或者供应商是否可以通过这种方式自由实施正弦?

opengl trigonometry intel glsl

9
推荐指数
1
解决办法
672
查看次数

为什么我的AMD CPU在编译应用程序时遇到问题?

截至去年9月,我一直在使用基于英特尔i7的笔记本电脑来创建和编译我的程序,但不幸的是显卡坏了,因此我构建了一台基于AMD 4100 FX处理器的预算计算机.

自从我开始使用桌面进行编译以来,我遇到了各种各样的问题,主要问题是我的应用程序在英特尔平台上确实不稳定.

这个问题的最新版本是我的C++代码中的某个函数被破坏,似乎是由于在AMD CPU上进行编译而引起的.为了测试这一点,我很快掌握了AWS(亚马逊网络服务)EC2 micro.t2服务器,从Dreamspark安装了Visual Studio 2008,下载了源代码并进行了编译.果然,没有腐败的功能和源代码生成的DLL完美运行.

我正在使用带有库存编译器的Visual Studio 2008,并运行Windows 8.1(AWS EC2服务器运行Windows Server 2008 R2).我正在尝试编译的代码示例是Crysis Wars SDK,请记住,此代码总是在我的Intel i7 CPU上正常编译.

为什么我的AMD CPU在编译C++应用程序时遇到这么多麻烦?除了继续在AWS EC2服务器上编译我的应用程序,或者在基于英特尔的新PC构建上花钱,我能做些什么吗?

c++ intel visual-studio-2008

9
推荐指数
2
解决办法
625
查看次数

在Windows 10 for Android Studio上安装HAXM

Android Studio告诉我安装HAXM,所以我下载了它,当我去安装时,它说This computer does not support Intel Virtualization Technology.经过一些搜索,我发现如果你在控制面板中取消选中Hyper-V,一切都会好的.我面临的问题是,它甚至没有检查过.有没有其他方法可以解决这个问题,还是我的电脑真的不支持VT-X?

android hyper-v intel android-studio haxm

9
推荐指数
1
解决办法
3万
查看次数

Sandybridge微体系结构中的堆栈引擎是什么?

我正在阅读http://www.realworldtech.com/sandy-bridge/,我在理解一些问题时面临一些问题:

专用堆栈指针跟踪器也存在于Sandy Bridge中并重命名堆栈指针,消除了串行依赖性并删除了多个uop.

什么是dedicated stack pointer tracker实际?

对于Sandy Bridge(和P4),英特尔仍然使用术语ROB.但重要的是要理解,在这种情况下,它只引用了飞行中uops的状态数组

事实上它意味着什么?请说清楚.

x86 assembly intel cpu-architecture

9
推荐指数
1
解决办法
979
查看次数

在Mac上卸载英特尔HAXM(El Capitan)

我在Mac上安装VMware Fusion后遇到错误,无法找到/ dev/vmmon.经过一番挖掘,我了解到只有那么多可用的角色设备,而我所拥有的其他软件已经消耗掉了它们.

由于我主动使用Viscosity和Virtualbox(暂时),我能找到的唯一一个是Intel HAXM驱动程序.

在线说明建议运行脚本来卸载它,但是我的笔记本电脑上不存在该脚本.

我用命令卸载了驱动程序:

sudo kextunload -b com.intel.kext.intelhaxm
Run Code Online (Sandbox Code Playgroud)

我想确定是否还有其他我需要做的事情,这个驱动程序会在启动时尝试重新加载吗?

谢谢!

macos intel haxm

9
推荐指数
2
解决办法
5569
查看次数

除非Haswell指定,否则GCC会很难编制前导零计数

GCC支持__builtin_clz(int x)内置,它计算参数中前导零(连续最重要的零)的数量.

除了其他东西0之外,这对于有效地实现lg(unsigned int x)函数非常有用,该函数采用基数2的对数x,舍入为1:

/** return the base-2 log of x, where x > 0 */
unsigned lg(unsigned x) {
  return 31U - (unsigned)__builtin_clz(x);
}
Run Code Online (Sandbox Code Playgroud)

这部作品在简单的方式-尤其是考虑的情况下x == 1,并clz(x) == 31-再x == 2^0这样lg(x) == 031 - 31 == 0我们得到正确的结果.更高的x工作价值.

假设内置程序有效实现,这比备用纯C解决方案更好.

现在,它发生了,计数前导零操作基本上是bsrx86中指令的双重.返回参数中最重要的1位2的索引.因此,如果有10个前导零,则第一个1位位于参数的第21位.一般来说,我们有31 - clz(x) == bsr(x),并在这样bsr …

c performance x86 gcc intel

9
推荐指数
1
解决办法
668
查看次数

为什么英特尔这些年来改变了静态分支预测机制?

这里我知道英特尔近年来实施了几种静态分支预测机制:

  • 80486年龄:永远不被采取

  • Pentium4年龄:未采取后退/前锋

  • 像Ivy Bridge,Haswell这样的新型CPU变得越来越无形,请参阅Matt G的实验.

英特尔似乎不想再谈论它,因为我在英特尔文档中找到的最新资料大约是十年前写的.

我知道静态分支预测(远远不是)比动态更重要,但在很多情况下,CPU将完全丢失,程序员(使用编译器)通常是最好的指南.当然,这些情况通常不是性能瓶颈,因为一旦频繁执行分支,动态预测器就会捕获它.

由于英特尔不再在其文档中明确声明动态预测机制,因此GCC的builtin_expect()只能从热路径中删除不太可能的分支.

我不熟悉CPU的设计,我不知道究竟是什么机制,目前英特尔使用其静态预测,但我还是觉得英特尔的最佳机制应该清楚地记录他的CPU",我打算去当动态预测失败,向前或向后',因为通常程序员是当时最好的指南.

更新:
我发现你提到的主题逐渐超出我的知识范围.这里涉及一些动态预测机制和CPU内部细节,我在两三天内无法学习.所以请允许我暂时退出你的讨论并充电.
这里仍然欢迎任何答案,也许会帮助更多人

compiler-construction x86 intel cpu-architecture branch-prediction

9
推荐指数
3
解决办法
1637
查看次数

英特尔C ++编译器(19.0)现在是否仅使用Clang前端(即已经废弃的EDG)?

在16.0中,英特尔C ++编译器提供了两个编译器(一个基于EDG,另一个基于Clang)。

16.0文档中

使用命令行

要从命令行调用编译器,请使用类似于以下命令:

  • 对于C源文件:icc my_source_file.cicl my_source_file.c

  • 对于C ++源文件:icpc my_source_file.cppicl++ my_source_file.cpp

成功编译后,编译器会在当前目录中创建一个可执行文件。

icl/icl++是基于Clang的前端。您可以在此编译器中使用Clang选项。icc/icpc是基于EDG的前端。您不能将Clang选项与一起使用icc/icpc

但是我现在没有看到类似的描述。

c++ intel icc edg

9
推荐指数
1
解决办法
355
查看次数