Intel MIC(Many Integrated Core)

Intel MIC(Many Integrated Core)

AVX now is a thing of past.
Intel has producted a new kind of processor architecture
MIC. It 's works like GPU,many threads, but much easier to programming than GPU.

I have a question about MIC .

I write a program using MIC intrinsics , it works ok.

when I using icc -S to generator ,it works Ok too.

but when I using
icc -offload-build -c testMIC.s
icc -c testMIC.s

it report many errors.
diag_spmvMIC.s:43: Error: no such instruction: `vkmov %eax,%k1'
diag_spmvMIC.s:146: Error: no such instruction: `vloadunpackhd 64(%r13,%r14,4){nt},%v0'
diag_spmvMIC.s:148: Error: no such instruction: `vloadunpackld (%r13,%r14,4){nt},%v0'
diag_spmvMIC.s:162: Error: no such instruction: `vloadq 176(%rsp){1to8},%v3'

Do any one using MIC give me some hint?

11 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Quoting zhangxiuxia
AVX now is a thing of past.

I beg to differ. AVX2 largely overlaps with LRBni, and can be extended up to 1024-bit operations. The latter property can be used to execute them in four cycles on 256-bit units, offering great opportunity for clock gating and thus massively reducing the power consumption of the out-of-order execution logic.

In other words, future high-end desktop CPUs could closely compete with the MICs in terms of throughput and power consumption.

CPUs have unique advantages though: out-of-order execution allows to keep a low number of threads, which means each of them get a large share of cache space. This improves the hit rates, which in turn lowers bandwidth needs and power consumption higher up. Lots of workloads also have large portions of serial code, for which the high frequency and low latency of the CPU is superior. So even with a lower peak peformance, the CPU can outperform other architectures in practice.

The MICs will fend off GPUs in the HPC market for a while, but in the longer term a CPU with AVX-1024 will be an all-round better option.

Your assembler does not recognize LRBni.

Which assembler should I use.?

if ICC can compile larabee intrinsics , it should support LRBni,because intrinsics is just a
encapsulation of assembly instructions.

I suppose that if you have icc emit binary directly, there should be no problem; but if you have icc produce assembly source then assemble it, icc would most likely just delegate the assembling work to the system assembler, which unfortunately does not speak LRBni.

It's right , when I compile c files to binary object file ,it's ok.
But I use icc to produce assembly and then compile ,the compiler gives me error hints.

"GNU as " and "GNU C" cannot work with such porgram.
ICCdoesnot work ,too.
How can I do , if I want to compile assembly programthat has LRBni in it.

Execuse me for my ignorance of AVX2 and my incorrect words.
I just learned LRB about its features of "many core, many threads,512 bit vector operation "
Have little knowledge about avx2 .
LRB has its own limits , 2 pipeline and in order execute and lower frequency.(alghou better than gpu )
Avx2 sounds more promising.

What Intel compiler version are you using?Is publicily avaiable?

icc --version

icc (ICC) Mainline 20110201
Copyright (C) 1985-2010 Intel Corporation. All rights reserved.

icc -V

Intel C Intel 64 Compiler XE including Intel MIC Architecture for Linux, Version Mainline.036 Alpha Build 20110201
Copyright (C) 1985-2010 Intel Corporation. All rights reserved.

icc: NOTE: The Beta evaluation period for this product ends on 31-dec-2012 UTC.

I donot know whether it is publicily available .
our lab bought the machine and install the compiler.

Quoting zhangxiuxia
icc -V

Intel C Intel 64 Compiler XE including Intel MIC Architecture for Linux, Version Mainline.036 Alpha Build 20110201

No, not public, it was distributed under a non-disclosure agreement.

Leave a Comment

Please sign in to add a comment. Not a member? Join today