标签: xeon-phi

Knights Landing CPU(Xeon Phi)会加速字节/字整数代码吗?

英特尔至强披"骑士降落"处理器将是第一个支持AVX-512,但它只能支持"F"(如无SSE SSE2,或不AVX AVX2),所以浮点东西为主.

我正在编写使用内部函数通过SSE4.1指令操作字节和字(8位和16位)的软件.

我很困惑,是否会出现在AVX-512F全部/大部分SSE4.1指令EVEX编码的版本,以及这是否意味着我可以期待我的SSE代码来自动获取EVEX扩展指令和映射到所有新的寄存器.

维基百科说:

SIMD寄存器文件的宽度从256位增加到512位,共有32个寄存器ZMM0-ZMM31.如256位的YMM从AVX扩展和从流SIMD扩展128位XMM寄存器寄存器,这些寄存器可被寻址,和遗留AVX和SSE指令可以扩展到在16个附加寄存器XMM16-XMM31和YMM16-YMM31使用EVEX当操作编码形式.

这不幸的是没有澄清是否编译SSE4代码启用AVX512,会导致相同的(真棒)加速比它编译成AVX2提供(的传统指令VEX编码).

有人知道为AVX-512F编译SSE2/4代码(C内在函数)会发生什么?人们可以期待像AVX1的字节和字指令的VEX编码那样的速度颠簸吗?

c byte sse4 xeon-phi avx512

6
推荐指数
1
解决办法
273
查看次数

获取至强 phi 的特定型号

我正在尝试找到我正在使用的 Xeon Phi 协处理器的确切型号。我运行 micpinfo,这就是我得到的

    ***************************/opt/intel/mic/bin/micinfo***************************
MicInfo Utility Log

Created Fri Jan 10 13:09:40 2014


    System Info
        HOST OS         : Linux
        OS Version      : 2.6.32-279.el6.x86_64
        Driver Version      : 5889-16
        MPSS Version        : 2.1.5889-16
        Host Physical Memory    : 1911 MB

Device No: 0, Device Name: mic0

    Version
        Flash Version        : 2.1.02.0383
        SMC Boot Loader Version  : NotAvailable
        uOS Version          : 2.6.38.8-g9b2c036
        Device Serial Number     : NotAvailable

    Board
        Vendor ID        : 8086
        Device ID        : 225c
        Subsystem ID         : 2500
        Coprocessor Stepping …
Run Code Online (Sandbox Code Playgroud)

icc intel-mic xeon-phi

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

Xeon Phi协处理器与Xeon Phi主机处理器?

主处理器和协处理器有什么区别?特别是Xeon Phi协处理器和Xeon Phi主机处理器?

我在这些机器上有一些性能结果(正在运行扩散方程的并行OpenMP代码),这表明当相同数量的线程工作时,主机处理器的工作速度要快得多.我想知道不同之处并将它们与我的结果联系起来.

processor openmp xeon-phi

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

使用Xeon Phi进行R并行处理,最少的代码更改?

看着购买一对Xeon Phi 5110P,但试图估计我需要改变多少代码或其他需要的软件.

目前我利用好R对多核心的Windows机器(24个内核)使用foreach包,通过它其他的包forecast,glmnet等做我的并行处理.

有一个Xeon Phi我明白我想编译R https://software.intel.com/en-us/articles/running-r-with-support-for-intel-xeon-phi-coprocessors我明白这可能是完成了Parallel Studio XE的跟踪版本.

那么我是否需要编辑R的Makeconf文件,添加C/C++标志和Phi?在Parallel Studio上的跟踪到期之前编译所有需要的包?或者我是否不需要编辑Makeconf以获得foreachPhi 的好处?

似乎其中一些将在编译R后自动处理,并由Math Kernel Library(MKL)完成卸载,但我不完全确定这一点.

一些相关的问题:英特尔至强融核是否可以在没有昂贵的英特尔编译器的情况下使用?

此外revolutionanalytics.com似乎有一些相关的博客文章,但不是完全确凿的对我来说:http://blog.revolutionanalytics.com/2015/05/behold-the-power-of-parallel.html

parallel-processing foreach r xeon-phi

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

在 Linux 集群上安装 R `forecast` 包:编译器问题?

我希望测试性能R,更具体地说是forecast在具有英特尔至强融核协处理器的 HPC 集群上的包中的一些例程。据我了解,系统管理员已R/3.2.5按照英特尔网站上的说明从源代码构建:https : //software.intel.com/en-us/articles/build-r-301-with-intel-c-compiler-and-intel -mkl-on-linux

因此,可以在使用安装到本地用户特定库的会话中执行R包括devtoolsdata.tabledplyrggplot2、在内的软件包的安装。我提到这些包的原因是它们都需要某种形式的编译,因此我需要在我的文件中包含该行以加载编译器。RcppRcppArmadilloRinstall.packagesmodule load intel/15.2.164.bashrc

但是,当我开始安装该forecast软件包时,却失败了。有很长的文本输出流(见下文),但总而言之,似乎与编译器相关的某些事情失败了:

/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_xe_2015.2.164/compiler/include/complex(115): error #308: member "std::complex<float>::_M_value" (declared at line 1157 of "/usr/include/c++/4.4.7/complex") is inaccessible
          return __x._M_value + __y._M_value;
Run Code Online (Sandbox Code Playgroud)

恐怕我对编译软件和管理/安装知之甚少:这些问题以前在我的 Mac 或大学 Linux 集群上从未发生过。

> install.packages("forecast")
Installing package into '/gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5'
(as 'lib' is unspecified)
trying URL 'https://www.stats.bris.ac.uk/R/src/contrib/forecast_7.1.tar.gz'
Content type 'application/x-gzip' length 196896 bytes (192 KB)
==================================================
downloaded …
Run Code Online (Sandbox Code Playgroud)

r icc forecasting rcpp xeon-phi

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

无效的'asm':嵌套的汇编方言替代品

我正在尝试使用k1om-mpss-linux-gcc编译器为Xeon Phi平台编写一些带有KNC指令的内联汇编代码.我想在我的代码中使用掩码寄存器来向量化我的计算.这是我的代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
#include <assert.h>
#include <stdint.h>

void* aligned_malloc(size_t size, size_t alignment) {

    uintptr_t r = (uintptr_t)malloc(size + --alignment + sizeof(uintptr_t));
    uintptr_t t = r + sizeof(uintptr_t);
    uintptr_t o =(t + alignment) & ~(uintptr_t)alignment;
    if (!r) return NULL;
    ((uintptr_t*)o)[-1] = r;
    return (void*)o;
}

int main(int argc, char* argv[])
{
    const int vectorSize = 16;
    int * n_arr = (int *) aligned_malloc(16 * sizeof(int),64);
    int * lenS_arr = (int *) aligned_malloc(16 …
Run Code Online (Sandbox Code Playgroud)

assembly gcc inline-assembly xeon-phi avx512

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

当前一代 Xeon 处理器之间的差异

Xeon W 系列、铜牌、银牌、金牌和白金系列之间的实际区别是什么?

对于早期版本的 Xeon,E3 是单插槽 CPU。而 E5 可用于具有两个插槽的主板。E7 支持四插槽(也可能是 8 个)

然而,对于当前这一代 Xeon,大多数产品线都具有 2S 的可扩展性(一块主板上有 2 个处理器)

如果 Xeon Silver 和 Xeon Platinum 可以用于双插槽主板,为什么我需要铂金处理器,它至少比 Silver 贵 5 倍?除非有其他差异。

当前一代 Xeon 处理器之间有何区别?我发现缓存大小存在一些差异。除此之外,我找不到其他任何东西。

intel xeon-phi server

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

在Xeon Phi上使用GCC

我被告知可以在MIC上运行一个用gcc构建的程序.

真的吗?

如果是,如何进行?

我正在使用gcc版本4.4.7.

gcc intel-mic xeon-phi

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

如何区分Intel Xeon Phi Coprocessor 7120P,7120X,7120D,7120A

我有一个Xeon phi协处理器7120P.
当我运行micinfo时,我看到主板SKU为C0PRQ-7120 P/A/X/D.
我注意到SMC HW Revision声明产品300W Passive CS,我在tomshardware上读到P代表intel xeon phi familiy设备的被动冷却.这是它还是有其他方法可以告诉我在我的系统7120 P/A/X或D上有哪些设备?

根据ark.intel.com上给出的规格,所有四个设备看起来都是一样的.有人可以详细说明这些设备之间的实际差异.

hpc intel-mic xeon-phi

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

Xeon Phi 上每 60 个线程 pthread_create() 就会失败(参数无效)

我在这里将一段 pthread 代码列为函数“thread”。它基本上创建许多线程(Xeon Phi 上通常为 240 个,CPU 上通常为 16 个),然后连接它们。

如果我只调用这个 thread() 一次,它在 CPU 和 Xeon Phi 上都能完美运行。如果我再调用一次,它在 CPU 上仍然可以正常工作,但 pthread_create() 将报告“错误 22”,每 60 个线程应该是“无效参数”。

例如,第二次运行 thread() 的线程 0、线程 60、线程 120 等(也是进程中曾经创建的 241、301、361 等线程)将失败(错误 22)。但线程 1~59、61~119、121~240 等可以正常工作。

请注意,此问题仅发生在 Xeon Phi 上。

我检查了堆栈大小和参数本身,但没有找到原因。论据是正确的。

void thread()
{

...

int i, rv;
cpu_set_t set;
arg_t args[nthreads];
pthread_t tid[nthreads];
pthread_attr_t attr;
pthread_barrier_t barrier;

rv = pthread_barrier_init(&barrier, NULL, nthreads);
if(rv != 0)
{
    printf("Couldn't create the barrier\n");
    exit(EXIT_FAILURE);
}

pthread_attr_init(&attr);

for(i = 0; i < …
Run Code Online (Sandbox Code Playgroud)

c c++ multithreading pthreads xeon-phi

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

任何方法将基于AVX512 cpu intrinics的unsigned char转换为short?

我只是在Xeon Phi处理器中读取AVX内置的AVX512集,但似乎sse中的传统数据类型转换方法在avx512中不起作用,所以我可以问一下avx512中是否有任何类似的cpu设置可以转换unsigned char数组到短数据类型数组?提前致谢!

sse simd xeon-phi avx512

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

从 Intel Xeon Phi 上的 AVX512 迁移到 Intel i5-8259U 上的 AVX2 会损失什么?

在尝试学习Coursera 上的课程时,我尝试为我的 CPU 优化示例 C++ 代码Intel i5-8259U,我相信它支持AVX2SIMD 指令集。现在,AVX2每个内核提供 16 个寄存器(称为YMM0, YMM1, ..., YMM15),宽度为 256 位,这意味着每个内核最多可以同时处理 4 个双精度浮点数。利用AVX2SIMD 指令应该可以优化我的代码,使其运行速度比标量指令快 4 倍。

在链接的课程中,您可以尝试在Intel Xeon Phi 7210 (Knights Landing)支持AVX512使用 512 位宽寄存器的处理器上运行相同的数值积分代码。这意味着我们应该期望双精度运算的速度提高 8 倍。实际上,讲师使用的代码获得了高达 14 倍的优化,几乎是 8 的 173%。额外的优化归功于 OpenMP。

为了在我的 CPU 上运行相同的代码,我唯一改变的是传递给英特尔编译器的优化标志:-xMIC-AVX512我使用了 ,而不是-xCORE-AVX2。我获得的加速仅为 2 倍,仅是由于 256 位寄存器上的 SIMD 矢量化而产生的预期加速的 50%。将此 50% 与英特尔至强融核处理器上获得的 173% 进行比较。

为什么我仅仅从 转到 就看到性能的巨大AVX512损失AVX2?当然,除了 …

icc compiler-optimization avx2 xeon-phi avx512

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

什么是 JKZD 和 JKNZD?

浏览 Zydis(https://github.com/zyantific/zydis/blob/57be5b1d1b9dd99830b89caac928add64ad5d072/include/Zydis/Generated/EnumMnemonic.h)助记符我发现了这些:

ZYDIS_MNEMONIC_JKNZD,
ZYDIS_MNEMONIC_JKZD,
Run Code Online (Sandbox Code Playgroud)

我在其他任何地方都找不到这些助记符;它们代表什么指令?

这些指令执行什么操作?

ZandNZ可能分别表示零和不为零,并且J可能代表跳跃,但是KD

编辑:我找到了这个旧的英特尔文档,但没有任何意义:

http://www.cism.ucl.ac.be/Services/Formations/ICS/ics_2013.0.028/vtune_amplifier_xe/documentation/en/instructions/327364001EN.pdf

它指出(第 75 页)JKZD 被编码为 VEX.NDS.128.0F.W0 84 id。

x86 assembly x86-64 disassembly xeon-phi

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