小编Ste*_*ton的帖子

当Skylake CPU错误预测分支时会发生什么?

我试图详细了解当分支预测错误时,skylake CPU管道的各个阶段中的指令会发生什么,以及从正确的分支目标开始执行指令的速度如何。

因此,让我们在这里将两个代码路径标记为红色(一个预测但未实际采用)和绿色(一个已预测但未预期)。所以问题是:1.在红色指令开始被丢弃之前,分支必须经过管道多远(以及在管道的哪个阶段被丢弃)?2.绿色指令(在分支到达的流水线阶段方面)多久可以开始执行?

我看过Agner Fogg的文档和许多讲义,但这些观点并不清楚。

x86 intel cpu-architecture speculative-execution branch-prediction

5
推荐指数
1
解决办法
369
查看次数

NUMA 会影响内存带宽还是仅影响延迟?

我遇到的问题是内存带宽有限——我需要从 RAM 中顺序读取大量(许多 GB)数据,进行一些快速处理,然后将其顺序写入 RAM 中的不同位置。内存延迟不是问题。

将工作分配给不同 NUMA 区域中的两个或多个核心是否有任何好处?同样,跨区域工作是否会减少可用带宽?

numa memory-bandwidth

4
推荐指数
1
解决办法
2126
查看次数

如何在OSX 10.11 El Capitan下使用macport使gdb工作?

这是因为如何在Mac OSX El Capitan中安装gdb(调试器)?.

我有在el capitan下工作的macport没有问题,并且安装了gdb端口,但我无法使代码签名工作.这一切似乎都有效.证书在那里并且设置了"始终信任".二进制显示:

$ codesign -d -v -v /opt/local/bin/ggdb 
Executable=/opt/local/bin/ggdb
Identifier=org.gnu.gdb
Format=Mach-O thin (x86_64)
CodeDirectory v=20100 size=25320 flags=0x0(none) hashes=1261+2 location=embedded
Signature size=1392
Authority=gdb-cert
Signed Time=23 Oct 2015, 07:56:53
Info.plist entries=4
TeamIdentifier=not set
Sealed Resources=none
Internal requirements count=1 size=88
Run Code Online (Sandbox Code Playgroud)

但我明白了

(gdb) r
Starting program: /Users/sal/Katiss/ecodriving 
Unable to find Mach task port for process-id 39278: (os/kern) failure (0x5).
(please check gdb is codesigned - see taskgated(8))
Run Code Online (Sandbox Code Playgroud)

当我尝试开始调试时.

有任何想法吗?

macos gdb macports

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

是否有 x86 内在函数从内存中的 32 位浮点值生成 AVX512 广播操作到 512 位寄存器?

该指令存在 ( vbroadcastss zmm/m32) 但似乎没有生成它的内在指令。

我可以将其编码为

static inline  __m512 mybroadcast(float *x) {
    __m512 v;
    asm inline ( "vbroadcastss %1,%0 "
                 : "=v" (v)
                 : "m" (*x)
                 );
    return v;
}

Run Code Online (Sandbox Code Playgroud)

有没有办法在没有内联 asm 的情况下做到这一点?

c intrinsics avx512

2
推荐指数
1
解决办法
329
查看次数