intel相关内容

为什么奔腾汇编指令越多,花费的时间就越少?

下面是两个奔腾组装序列列表中的一个片段。我们有一个外部循环,它试图对我们的序列进行计时,并正在执行调用表以到达这些例程。因此,每次外部呼叫都是从同一位置进行的。这两个序列的不同之处在于,第一个序列比第二个序列少一条指令。 我们在两台英特尔计算机上获得的结果非常不同。 CPUID指令告知Family、Model和Step。 机器1:家庭6,型号15步进11。CPUZ报告“Intel ..
发布时间:2022-08-15 14:54:39 其他开发

Vzeroall零寄存器是否为ymm16到ymm31?

vzeroall的documentation似乎不一致。这篇散文说: 该指令将所有XMM或YMM寄存器的内容置零。 然而,下面的伪代码表示在64位模式下,只有寄存器ymm0到ymm15受到影响: IF (64-bit mode) limit ←15 ELSE limit ← 7 FOR i in 0 .. limit: simd_reg_file[i][M ..
发布时间:2022-08-15 14:48:18 其他开发

奔腾III CPU如何处理来自同一组的多个指令前缀?

英特尔x86规范规定,使用同一组中的多个指令前缀会导致未定义的行为。在实践中,奔腾III铜矿CPU在这种情况下是如何反应的?遗憾的是,我没有芯片可供测试。 推荐答案 虽然您已经知道这一点,但为了清楚起见,我将首先说明它。X86指令最多可以有4个前缀(每个前缀来自不同的组),以改变处理器对指令的解释。来自Intel IA-32 Architecture Manual, Volume 2A ..
发布时间:2022-08-15 14:45:00 其他开发

在Intel 64体系结构中,CALLF(远呼叫)是否具有64位地址内存操作数?

在Intel 32位体系结构中,我可以使用MODR/M字节使用32位地址位置进行调用。根据英特尔手册,操作码扩展需要/2(010B),MOD需要00B,101B允许32位位移。 如果我想在64位体系结构中进行远调用,以便有空间容纳64位地址,我知道我可以/3(011B)用于操作码扩展。然而,仍然只提供32位位移。是否可以将目标指定为64位地址? 我主要想知道如何在给定该位置的64位地址的情 ..
发布时间:2022-07-19 16:06:10 其他开发

如何查看最后一级缓存中有多少片?

我在一篇论文中读到关于末级缓存的介绍。在引言中,有人说末级缓存有很多片。每个片就像一个传统的集关联缓存。根据集合索引和切片ID找到对应的缓存集合(如下图所示)。 我想检查我的服务器有多少个切片。以及每个片的信息(多少个缓存组、每个缓存组中有多少缓存行)。我在Google上搜索的方法是查看/sys/devices/system/cpu/cpu0/cache/index3文件夹下的缓存信息。 ..
发布时间:2022-07-19 16:02:08 其他开发

英特尔OpenVINO预训模型UNET-CamVid-Onnx-0001预测不正确

我从OpenVINO Model Zoo Github Repo下载了英特尔pre-trained Unet model,未做任何修改。 但它似乎不起作用,请看看下面右侧的预测。 我期待看到正确的分割与不同的颜色标记的道路,天空,树木等…但它只是展示了更黑暗的形象。 这是我的代码,如果您发现其中有什么错误,请告诉我: from logging import exception i ..
发布时间:2022-05-08 21:06:11 Python

使用GDB调试英特尔C++编译代码

我正在尝试调试用英特尔C++编译的C++代码。 我试过非常小的测试程序。我使用“/Zi”选项进行了编译,我看到生成了*.pdb文件,但gdb没有显示任何调试符号。连我都不能中断main()函数。 在论坛中,人们提到了英特尔的“IDB”调试器。但我没有在我的安装区找到它。我在一台计算机上安装了Intel Composer版本,在另一台计算机上安装了Professional Addition。这 ..
发布时间:2022-05-08 21:01:40 C/C++开发

Pkg_resource ces.DistributionNotFound:';json架构';

无法运行“intel-Nauta”,因为它引发了此错误:pkg_resource ces.DistributionNotFound:找不到应用程序所需的‘jsonschema’分发 [19160]无法执行主脚本。 python3.0 在pip安装jsonSCHEMA时,它说已找到要求。 已更改版本仍然存在错误。 已参考以下链接。 https://github.com/IntelAI/n ..
发布时间:2022-05-08 20:50:54 Python

英特尔:序列化指令和分支预测

The Intel Architecture's Developer's Manual(第三卷,第8-26节),内容为: 奔腾处理器和更新的处理器系列使用 分支预测技术,以通过预取 分支指令之前的分支指令的目的地为 被处死。因此,指令执行不是确定性的 在执行分支指令时序列化。 这是什么意思? 听起来真的,真的很糟糕。这听起来像是一条序列化指令,如CPUID中断分支预测(反之亦然) ..
发布时间:2022-05-08 20:44:48 其他开发

英特尔x86-中断服务例程职责

我没有这个词的真正意义上的问题,而是我将尝试澄清一个内容问题。假设我们有一个微内核(PC Intel x86;32位保护模式),对于每个CPU异常,都使用中断描述符表(IDT)和中断服务例程(ISR)。如果出现Division by Zero异常,则ISR调用成功。 global ir0 extern isr_handler isr0: cli push 0x00 ; ..
发布时间:2022-05-08 20:33:59 其他开发

为什么英特尔使用VIPT缓存而不是VIVT或PIPT?

我不确定,但如果我没记错的话,我想知道英特尔使用VIPT(虚拟索引物理标记)缓存的原因,为什么它比VIVT或PIPT更好,它有什么优势,可能还有什么劣势。谢谢。 推荐答案 可能没有公布确切的设计决策,但总的来说,VIPT的好处是: 虚拟索引意味着您可以在TLB中查找转换之前(或与之并行)开始从缓存中读取集合。这意味着常见案例的查找将比物理索引缓存快得多,在物理索引缓存中,您只能在 ..
发布时间:2022-05-08 20:06:56 其他开发

现代英特尔处理器有多少种超标量?

我刚刚了解了超标量处理器(https://en.wikipedia.org/wiki/Superscalar_processor)。 我还了解到,随着超标量处理器在宽度/方式数量上的增加,事情变得更加复杂,复杂性增加得如此之快,以至于最好添加更多的内核,而不是更多的宽度。我的教练说,在4路和8路超标量之间增加更多的方式是不值得的。 这让我想知道:英特尔从哪里停止增加方法,开始增加内核? ..
发布时间:2022-05-08 19:58:04 其他开发

如何在C++中区分高性能和低性能内核/线程?

在谈到多线程时,线程似乎经常被视为平等--与主线程相同,但在它旁边运行。 然而,在一些新的处理器上,如Apple "M" series和即将推出的英特尔Alder Lake系列,并非所有线程都具有同等的性能,因为这些芯片具有单独的高性能内核和高效率、较慢的内核。 这并不是说现在还没有超线程之类的东西,但这似乎具有更大的性能影响。 有没有办法查询std::thread的属性并强制执 ..
发布时间:2022-05-08 19:53:43 C/C++开发

为什么Intel x87寄存器有80位宽?

为什么使用如此“奇怪”的寄存器大小?是否有任何文档说明为什么不建议对这些寄存器使用64位或128位? 推荐答案 Wikipedia page on the IEEE 754-1985 standard关于80位扩展格式有一个很好的解释: 该标准还建议使用扩展格式来执行 内部计算的精度高于 最终结果,以最大限度地减少舍入误差“ 双精度浮点数以64位表示。您可能需要更多的位以获得更 ..
发布时间:2022-05-08 19:29:41 其他开发

现代英特尔x86 CPU如何实现商店的总订单

由于其TSO内存模型,x86保证了所有存储的总顺序。我的问题是,有没有人知道这实际上是如何实施的。 我对所有4个围栏是如何实施的印象很好,所以我可以解释当地的秩序是如何保持的。但4个栅栏只会给出程序顺序;它不会给您提供TSO(我知道TSO允许较旧的商店跳到新负载之前,因此只需要4个栅栏中的3个)。 在单个地址上的所有内存操作的总顺序是一致性的责任。但我想知道英特尔(尤其是Skylake)如 ..
发布时间:2022-05-08 19:13:37 其他开发

如何使用标准Apple版本的clang从命令行在M1Mac上构建英特尔二进制文件?

我正在玩我的M1 MacBook Air上的一些C代码,并查看了使用各种优化级别生成的程序集。 我使用最基本的命令从命令行构建一个C文件: cc foo.c -o foo 我应该使用哪个开关来构建英特尔二进制文件而不是ARM?英特尔®32位与64位是否有不同的优势?也许甚至是更老的CPU指令集?这很难在谷歌上搜索到,但我对苹果的生态系统还是个新手。 胖二进制文件怎么办?如何从命 ..
发布时间:2022-04-10 13:33:13 其他开发

不能用VHDL2008Quartus Prime编译

我使用的是Quartus Prime Lite Edition,我想在STD_LOGIC_VECTOR上使用一元运算符NAND,如下所示 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity example1 is port( BIN : in std_ ..
发布时间:2022-03-23 19:17:53 其他开发