Software Archive
Read-only legacy content
17060 Discussions

32-bit mode compilation for MIC

Dmitry_M_3
Beginner
316 Views

Hello,

One website is saying 32-bit mode execution is possible on MIC devices - http://www.prace-project.eu/Best-Practice-Guide-Intel-Xeon-Phi-HTML

supports a 32-bit and 64-bit execution environment, along with Intel Initial Many Core Instructions

If this is true, then how to compile & link a MIC native app in 32-bit mode?

Thanks,

- D.

0 Kudos
4 Replies
Sumedh_N_Intel
Employee
316 Views

As far as I can find, you can cannot link and compile a Intel MIC native application in 32-bit mode. There is no -mmic option defined for 32-bit version of icc and hence one shouldn't be able to build a native executable for the Intel MIC architecture using it. 

0 Kudos
TimP
Honored Contributor III
316 Views

Another (somewhat far-fetched) interpretation of the statement is the existence of contexts where 32-bit mode is preferred, as in the offsets for gather-scatter memory access. Some of these might be viewed as inherited from the 32-bit nature of the original ancestor CPU. The application as a whole is in 64-bit mode.

0 Kudos
Dmitry_M_3
Beginner
316 Views

Guys, explanations you're giving are very strnage. Just look into "System V Application Binary Interface K1OM Architecture Processor Supplement Version 1.0", p. 124:

A.1 Execution of 32-bit Programs

The K1OM processors are able to execute 64-bit K1OM and also 32-bit ia32 programs.

This statement clearly says 32-bit is supported. I hope Intel could follow the specs it issues itself?

The fact is that MPSS is 64-bit only, meaning if 32-bit is supported (in theory), someone how'd want to get it running needs to compile binutils+glibc+gcc for native MIC with -m32 flag and properly set dynamic linker. I might have time to experiment with this later.

0 Kudos
James_C_Intel2
Employee
316 Views

While you may be able to execute 32 bit mode programs, the question is "Why would you want to?".

Since none of the vector floating point operations have valid encodings in 32-bit execution mode, you can't be intending to use the machine for anything floating point intensive (because all you'll have are 8087 instructions)...

0 Kudos
Reply