Software Archive
Read-only legacy content
Ankündigungen
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
17060 Diskussionen

Intrinsic for float / half float conversion is undefined.

Coxious_H_1
Einsteiger
1.086Aufrufe

Hi,

    I want to convert float data to half float data on Xeon Phi card using _mm512_cvt_roundps_ph and _mm512_cvt_roundph_ps. However, when I compile the code, it shows that:

undefined reference to `_mm512_cvt_roundps_ph(__m512, int)'

undefined reference to `_mm512_cvt_roundph_ps(__m256i, int)'

    I found instrinct above here: https://software.intel.com/en-us/node/523819

    I've already included immintrin.h, and other instrincts like _mm512_load_ps works fine. I found _mm512_cvt_roundps_ph and _mm512_cvt_roundph_ps defined in zmmintrin.h, but must define the micro __INTEL_COMPILER_USE_INTRINSIC_PROTOTYPES to enable it. Then I tried to define __INTEL_COMPILER_USE_INTRINSIC_PROTOTYPES myself and it didn't work.

    I'm using icpc (ICC) 16.0.2 20160204.

    Can anyone tell me whats going on?

Thanks.

 

0 Kudos
1 Lösung
TimP
Geehrter Beitragender III
1.086Aufrufe

Are you trying to use AVX512 with KNC coprocessor?  That won't work.  If you're building to run on AVX512 emulator, you will need to set an appropriate target.

Lösung in ursprünglichem Beitrag anzeigen

4 Antworten
TimP
Geehrter Beitragender III
1.087Aufrufe

Are you trying to use AVX512 with KNC coprocessor?  That won't work.  If you're building to run on AVX512 emulator, you will need to set an appropriate target.

Coxious_H_1
Einsteiger
1.086Aufrufe

Tim P. wrote:

Are you trying to use AVX512 with KNC coprocessor?  That won't work.  If you're building to run on AVX512 emulator, you will need to set an appropriate target.

Thanks for your reply. Yes I was trying to do that. Looks like I've muddled up AVX512 and MIC-AVX512. Is there more detailed articles telling the difference between them? I've Googled it but didn't get a good answer.

jimdempseyatthecove
Geehrter Beitragender III
1.086Aufrufe

 Look at the Intel Intrinsics Guide

It has check boxes to filter on technology (including AVX-512 and KNC).

While this may not provide a comprehensive description of why you would want to use one intrinsic verses another, it will show you what is available and what it does.

Note, when using this guide, checking a specific technology filters in the added capability. IOW if you want everything up to AVX2 you will need to check the boxes up to AVX2.

KNC is a little tricky in that legacy instructions that are supported are not listed. I think Intel could improve the Intrinsics Guide by having two check boxes in the Technologies section. One for added instructions, and one for all supported on the system with the selected technology.

Jim Dempsey

Coxious_H_1
Einsteiger
1.086Aufrufe

jimdempseyatthecove wrote:

 Look at the Intel Intrinsics Guide

It has check boxes to filter on technology (including AVX-512 and KNC).

While this may not provide a comprehensive description of why you would want to use one intrinsic verses another, it will show you what is available and what it does.

Note, when using this guide, checking a specific technology filters in the added capability. IOW if you want everything up to AVX2 you will need to check the boxes up to AVX2.

KNC is a little tricky in that legacy instructions that are supported are not listed. I think Intel could improve the Intrinsics Guide by having two check boxes in the Technologies section. One for added instructions, and one for all supported on the system with the selected technology.

Jim Dempsey

Thanks for your reply.  I've used this page and didn't notice that there is a KNC down there. I just looked at AVX-512 and made this mistake. I noticed there are supported instructions but not listed too. So I went to the page I mentioned above and found these two intrinsics. I hope Intel could improve this, too.

Antworten