2

I'm thinking of purchasing a Xeon Phi Knights Corner (KNC) coprocessor card. But I don't own an Intel Compiler and I have no interest in purchasing one (and the non-commercial version no longer seems to be an option).

It appears that GCC is getting OpenMP support for the Xeon Phi. Is there some version of GCC or an extension to GCC that supports the KNC intrinsics?

Note that the 512-bit SIMD of the KNC is not compatible withe AVX512 (though the next version Knights Landing will be).

Z boson
  • 32,619
  • 11
  • 123
  • 226
  • 1
    It doesn't yet exist, you currently need Intel tools to use KNC Intrinsics. I haven't heard if anyone is planning to support this. – amckinley Nov 14 '14 at 15:48
  • can you describe what you that KNC set for ? I mean what it is and what is specialized for ? This KNC doesn't look terribly popular even among Xeon users, maybe we can name an alternative if you can describe what's your use case scenario . – user2485710 Nov 14 '14 at 15:50
  • @user2485710, https://en.wikipedia.org/wiki/Xeon_Phi – Z boson Nov 14 '14 at 15:50
  • @amckinley, that's really unfortunate. The KNC is selling for about $200 right now. That's about 10-20% of it's previous price. – Z boson Nov 14 '14 at 15:52
  • @Zboson I mean the CPU registers not the product family – user2485710 Nov 14 '14 at 15:52
  • I guess Knight's Landing is not too far off now, so they're dumping Knight's Corner at a low price? – Paul R Nov 14 '14 at 15:59
  • @PaulR, yeah that could be the reason. But Knights Landing will probably cost on order $2000. If GCC has OpenMP support for the KNC the only thing missing is access to SIMD. Many of the KNC intrinsics are the same as AVX512 so mostly I guess it's mapping the intrinsics to the correct KNC instruction. – Z boson Nov 14 '14 at 16:03
  • Maybe you can just keep getting 30 day evaluation licenses for ICC until gcc 4.10 comes out next year with Xeon Phi support ? – Paul R Nov 14 '14 at 16:06
  • @PaulR, another option is to just use OpenCL. That's probably the best solution. – Z boson Nov 14 '14 at 16:08
  • @PaulR, I'm not even sure I have a system I could use it with. It's passively cooled and it's TDP is 270 Watts and most of the sites selling it warn "Passive cooling solution for servers (not for use in workstations)". – Z boson Nov 14 '14 at 16:11
  • 1
    Maybe, but you just *know* you really want to play with all those 512 bit intrinsics, right ? ;-) Actually I wasn't too impressed with KNC when I did some work with it, but I have high hopes for KNL... – Paul R Nov 14 '14 at 16:11
  • @PaulR, you worked with the KNC! I'm envious. If we are lucky Skylark will come out by the end of next year with AVX512. – Z boson Nov 14 '14 at 16:13
  • @PaulR, but I would rather have a lot of slow cores with 512-bit SIMD than 4-6 fast cores with AVX512. – Z boson Nov 14 '14 at 16:14
  • It'a hard to know where the whole price/performance/cores/SIMD-width envelope is going - I'm not even sure that Intel knows. (*Skylake, BTW ;-)) – Paul R Nov 14 '14 at 16:15
  • @PaulR, well I wrote a real time ray tracer in OpenCL for my GTX590 and the results were far better than I expected and much better than on my four core Sandy Bridge processor. – Z boson Nov 14 '14 at 16:18
  • A lot depends on your problem domain, e.g. GPGPU and Xeon Phi are good if you're working with 32 bit float data, less so if you have say 8/12/16 bit image data, and then architectures with SIMD support for 8 and 16 bit elements tend to have an edge. – Paul R Nov 14 '14 at 16:22
  • Developing for KNC takes work, but good results are possible. We have good numbers for a few algorithms now. Explicit use of SIMD is likely to be necessary for good performance. – amckinley Nov 14 '14 at 18:06
  • @amckinley, I am comfortable with explicit use of SIMD (actually I prefer it much more than implicit methods). I wonder what kind of system I would need for this card? I seems like I need really good cooling. It's passive colling so I guess that means it has no fan? I wonder if there is any after market coolers for it. – Z boson Nov 14 '14 at 19:31
  • @amckinley, the one for $200 ($140 in some cases) has no fan. – Z boson Nov 14 '14 at 19:35
  • Our Xeon Phis are housed in 4U rackmounted servers with lots of fans. We have had trouble with one card overheating in a server with less airflow so I am not really sure what the minimum requirement would be. – amckinley Nov 14 '14 at 19:38
  • @amckinley, it appears that the card is quite picky with motherboards and BIOS. http://www.pugetsystems.com/blog/2013/08/06/Will-your-motherboard-work-with-Intel-Xeon-Phi-490/ – Z boson Nov 14 '14 at 19:42
  • 1
    I really doubt gcc will ever have any support for KNC. https://gcc.gnu.org/ml/gcc/2014-11/msg00209.html – Marc Glisse Nov 16 '14 at 22:27
  • @amckinley, the KNC cards you have as far as I understand have their own version of Linux installed. You log into them. Does that mean they have a compiler installed and you can build on them? Or does it mean you have to build on your host system and copy (scp) the files to the KNC system? – Z boson Nov 17 '14 at 08:11
  • 1
    I don't have an answer to the original question, although for KNL, you can look at https://gcc.gnu.org/wiki/cauldron2014?action=AttachFile&do=get&target=Cauldron14_AVX-512_Vector_ISA_Kirill_Yukhin_20140711.pdf . It doesn't say when the intrinsics will be there but slide 18 gives an idea of when basic vector support will be there. As to some of the comments - you can cross-compile for KNC on the host using icc or cross compile or natively compile with gcc. (Of course, as Intel, I recommend icc.) – froth Nov 17 '14 at 17:58
  • 1
    @Zboson, KNC comes with MPSS (https://software.intel.com/en-us/articles/intel-manycore-platform-software-stack-mpss), which include x86_64-k1om-linux-gcc-4.7.0 compiler. With it you can compile on host and scp to KNC. But as I know, it doesn't include any 512-bit intrinsics and 512-bit auto-vectorization. That is, it produces correct code for KNC, maybe with some 512-bit instructions, but definitely with low performance. – Ilya Verbin Nov 18 '14 at 19:21
  • @The latest version of the MPSS (3.6) includes GCC 5.1.1+mpss which supports AVX512 intrinsics. So I think AVX512 intrinsics can be used whenever they are the same as the KNC intrinsics. Looking at the documentation shows they are the same in many cases. – Z boson Dec 13 '15 at 10:38

1 Answers1

2

You will have to use inline assembly rather than intrinsics to use the MIC vector instructions with GCC.

The Intel non-commercial software program was recently rebooted. See https://software.intel.com/en-us/qualify-for-free-software for details.

Jeff Hammond
  • 5,374
  • 3
  • 28
  • 45
  • Thank you. I should have thought of that. I think at the time I was not comfortable with inline assembly but now I am. – Z boson May 15 '15 at 06:46