Software Archive
Read-only legacy content
17061 Discussions

Compiling MESA3D on Xeon Phi

Santiago_P_
Beginner
816 Views

I'm trying to compile MESA3D v.7.5.1 with offscreen mesa drivers using the following configure line:

./configure CC=icc CFLAGS=-mmic  --prefix=$MIC_OPT_DIR LDFLAGS="-L$MIC_OPT_DIR/lib/ -L/opt/apps/intel/13/composer_xe_2013.2.146/compiler/lib/mic/" CXX=icpc CXXFLAGS=-mmic --with-osmesa-bits=32 --with-driver=osmesa  PKG_CONFIG=

But then executing 'gmake' will yield the following errors:

/tmp/iccfF5ujM.s: Assembler messages:
/tmp/iccfF5ujM.s:25: Error: `prefetchnta' is not supported on `k1om'
/tmp/iccfF5ujM.s:29: Error: `prefetch' is not supported on `k1om'
/tmp/iccfF5ujM.s:30: Error: `movaps' is not supported on `k1om'
/tmp/iccfF5ujM.s:31: Error: `movaps' is not supported on `k1om'
/tmp/iccfF5ujM.s:33: Error: `movaps' is not supported on `k1om'
/tmp/iccfF5ujM.s:34: Error: `movaps' is not supported on `k1om'
/tmp/iccfF5ujM.s:36: Error: `movups' is not supported on `k1om'
/tmp/iccfF5ujM.s:37: Error: `prefetchw' is not supported on `k1om'
/tmp/iccfF5ujM.s:38: Error: `pshufd' is not supported on `k1om'
/tmp/iccfF5ujM.s:40: Error: `pshufd' is not supported on `k1om'
/tmp/iccfF5ujM.s:41: Error: `mulps' is not supported on `k1om'
/tmp/iccfF5ujM.s:42: Error: `pshufd' is not supported on `k1om'
/tmp/iccfF5ujM.s:43: Error: `mulps' is not supported on `k1om'
/tmp/iccfF5ujM.s:44: Error: `pshufd' is not supported on `k1om'
/tmp/iccfF5ujM.s:45: Error: `mulps' is not supported on `k1om'
/tmp/iccfF5ujM.s:46: Error: `addps' is not supported on `k1om'
/tmp/iccfF5ujM.s:47: Error: `mulps' is not supported on `k1om'
/tmp/iccfF5ujM.s:48: Error: `addps' is not supported on `k1om'
/tmp/iccfF5ujM.s:49: Error: `prefetch' is not supported on `k1om'
/tmp/iccfF5ujM.s:50: Error: `addps' is not supported on `k1om'
/tmp/iccfF5ujM.s:51: Error: `movaps' is not supported on `k1om'
/tmp/iccfF5ujM.s:74: Error: `prefetchnta' is not supported on `k1om'
/tmp/iccfF5ujM.s:75: Error: `movaps' is not supported on `k1om'
/tmp/iccfF5ujM.s:76: Error: `movaps' is not supported on `k1om'
/tmp/iccfF5ujM.s:86: Error: `prefetch' is not supported on `k1om'
/tmp/iccfF5ujM.s:87: Error: `movaps' is not supported on `k1om'
/tmp/iccfF5ujM.s:88: Error: `movaps' is not supported on `k1om'
/tmp/iccfF5ujM.s:89: Error: `andps' is not supported on `k1om'
/tmp/iccfF5ujM.s:90: Error: `movaps' is not supported on `k1om'
/tmp/iccfF5ujM.s:91: Error: `andps' is not supported on `k1om'
/tmp/iccfF5ujM.s:92: Error: `movaps' is not supported on `k1om'
/tmp/iccfF5ujM.s:93: Error: `andps' is not supported on `k1om'
/tmp/iccfF5ujM.s:94: Error: `andps' is not supported on `k1om'
/tmp/iccfF5ujM.s:96: Error: `orps' is not supported on `k1om'
/tmp/iccfF5ujM.s:98: Error: `movups' is not supported on `k1om'
/tmp/iccfF5ujM.s:99: Error: `prefetchw' is not supported on `k1om'
/tmp/iccfF5ujM.s:100: Error: `pshufd' is not supported on `k1om'
/tmp/iccfF5ujM.s:102: Error: `pshufd' is not supported on `k1om'
/tmp/iccfF5ujM.s:103: Error: `mulps' is not supported on `k1om'
/tmp/iccfF5ujM.s:104: Error: `pshufd' is not supported on `k1om'
/tmp/iccfF5ujM.s:105: Error: `mulps' is not supported on `k1om'
/tmp/iccfF5ujM.s:106: Error: `pshufd' is not supported on `k1om'
/tmp/iccfF5ujM.s:107: Error: `mulps' is not supported on `k1om'
/tmp/iccfF5ujM.s:108: Error: `addps' is not supported on `k1om'
/tmp/iccfF5ujM.s:109: Error: `mulps' is not supported on `k1om'
/tmp/iccfF5ujM.s:110: Error: `addps' is not supported on `k1om'
/tmp/iccfF5ujM.s:111: Error: `prefetch' is not supported on `k1om'
/tmp/iccfF5ujM.s:112: Error: `addps' is not supported on `k1om'
/tmp/iccfF5ujM.s:113: Error: `movaps' is not supported on `k1om'
/tmp/iccfF5ujM.s:132: Error: `prefetch' is not supported on `k1om'
/tmp/iccfF5ujM.s:133: Error: `prefetchw' is not supported on `k1om'
/tmp/iccfF5ujM.s:153: Error: `prefetch' is not supported on `k1om'
/tmp/iccfF5ujM.s:154: Error: `movd' is not supported on `k1om'
/tmp/iccfF5ujM.s:156: Error: `punpckldq' is not supported on `k1om'
/tmp/iccfF5ujM.s:157: Error: `movd' is not supported on `k1om'
/tmp/iccfF5ujM.s:158: Error: bad register name `%mm1'
/tmp/iccfF5ujM.s:159: Error: `punpckldq' is not supported on `k1om'
/tmp/iccfF5ujM.s:161: Error: `prefetchw' is not supported on `k1om'
/tmp/iccfF5ujM.s:162: Error: bad register name `%mm4'
/tmp/iccfF5ujM.s:163: Error: bad register name `%mm5'
/tmp/iccfF5ujM.s:164: Error: `movd' is not supported on `k1om'
/tmp/iccfF5ujM.s:165: Error: bad register name `%mm5'
/tmp/iccfF5ujM.s:166: Error: `pfmul' is not supported on `k1om'
/tmp/iccfF5ujM.s:167: Error: `punpckhdq' is not supported on `k1om'
/tmp/iccfF5ujM.s:168: Error: `pfmul' is not supported on `k1om'
/tmp/iccfF5ujM.s:169: Error: `pfmul' is not supported on `k1om'
/tmp/iccfF5ujM.s:170: Error: `pfacc' is not supported on `k1om'
/tmp/iccfF5ujM.s:171: Error: `pfadd' is not supported on `k1om'
/tmp/iccfF5ujM.s:173: Error: bad register name `%mm4'
/tmp/iccfF5ujM.s:174: Error: bad register name `%mm5'
/tmp/iccfF5ujM.s:177: Error: `prefetch' is not supported on `k1om'
/tmp/iccfF5ujM.s:180: Error: `femms' is not supported on `k1om'
/tmp/iccfF5ujM.s:195: Error: `movd' is not supported on `k1om'
/tmp/iccfF5ujM.s:196: Error: `pxor' is not supported on `k1om'
/tmp/iccfF5ujM.s:197: Error: `punpckldq' is not supported on `k1om'
/tmp/iccfF5ujM.s:198: Error: bad register name `%mm2'
/tmp/iccfF5ujM.s:199: Error: `prefetch' is not supported on `k1om'
/tmp/iccfF5ujM.s:200: Error: `movd' is not supported on `k1om'
/tmp/iccfF5ujM.s:202: Error: `punpckldq' is not supported on `k1om'
/tmp/iccfF5ujM.s:204: Error: `prefetchw' is not supported on `k1om'
/tmp/iccfF5ujM.s:205: Error: bad register name `%mm4'
/tmp/iccfF5ujM.s:206: Error: bad register name `%mm5'
/tmp/iccfF5ujM.s:207: Error: `movd' is not supported on `k1om'
/tmp/iccfF5ujM.s:208: Error: bad register name `%mm5'
/tmp/iccfF5ujM.s:209: Error: `pfmul' is not supported on `k1om'
/tmp/iccfF5ujM.s:210: Error: `punpckldq' is not supported on `k1om'
/tmp/iccfF5ujM.s:211: Error: `pfmul' is not supported on `k1om'
/tmp/iccfF5ujM.s:212: Error: `pfsubr' is not supported on `k1om'
/tmp/iccfF5ujM.s:213: Error: `pfmul' is not supported on `k1om'
/tmp/iccfF5ujM.s:214: Error: `pfadd' is not supported on `k1om'
/tmp/iccfF5ujM.s:215: Error: `pfacc' is not supported on `k1om'
/tmp/iccfF5ujM.s:216: Error: bad register name `%mm5'
/tmp/iccfF5ujM.s:218: Error: bad register name `%mm6'
/tmp/iccfF5ujM.s:221: Error: `prefetch' is not supported on `k1om'
/tmp/iccfF5ujM.s:224: Error: `femms' is not supported on `k1om'
/tmp/iccfF5ujM.s:239: Error: `movd' is not supported on `k1om'
/tmp/iccfF5ujM.s:240: Error: `prefetch' is not supported on `k1om'
/tmp/iccfF5ujM.s:241: Error: `punpckldq' is not supported on `k1om'
/tmp/iccfF5ujM.s:242: Error: bad register name `%mm1'
/tmp/iccfF5ujM.s:244: Error: `prefetchw' is not supported on `k1om'
/tmp/iccfF5ujM.s:245: Error: bad register name `%mm4'
/tmp/iccfF5ujM.s:246: Error: bad register name `%mm5'
/tmp/iccfF5ujM.s:247: Error: `pfmul' is not supported on `k1om'
/tmp/iccfF5ujM.s:248: Error: bad register name `%mm5'
/tmp/iccfF5ujM.s:249: Error: `punpckhdq' is not supported on `k1om'
/tmp/iccfF5ujM.s:251: Error: `pfmul' is not supported on `k1om'
/tmp/iccfF5ujM.s:252: Error: `prefetch' is not supported on `k1om'
/tmp/iccfF5ujM.s:253: Error: `pfadd' is not supported on `k1om'
/tmp/iccfF5ujM.s:254: Error: bad register name `%mm6'
/tmp/iccfF5ujM.s:255: Error: bad register name `%mm5'
/tmp/iccfF5ujM.s:260: Error: `femms' is not supported on `k1om'
/tmp/iccfF5ujM.s:276: Error: `movd' is not supported on `k1om'
/tmp/iccfF5ujM.s:277: Error: `movd' is not supported on `k1om'
/tmp/iccfF5ujM.s:278: Error: `prefetch' is not supported on `k1om'
/tmp/iccfF5ujM.s:279: Error: `punpckldq' is not supported on `k1om'
/tmp/iccfF5ujM.s:281: Error: `punpckldq' is not supported on `k1om'
/tmp/iccfF5ujM.s:282: Error: bad register name `%mm2'
/tmp/iccfF5ujM.s:284: Error: `prefetchw' is not supported on `k1om'
/tmp/iccfF5ujM.s:285: Error: bad register name `%mm3'
/tmp/iccfF5ujM.s:286: Error: bad register name `%mm5'
/tmp/iccfF5ujM.s:287: Error: bad register name `%mm3'
/tmp/iccfF5ujM.s:288: Error: bad register name `%mm5'
/tmp/iccfF5ujM.s:289: Error: `pfmul' is not supported on `k1om'
/tmp/iccfF5ujM.s:290: Error: `punpckhdq' is not supported on `k1om'
/tmp/iccfF5ujM.s:291: Error: `pfmul' is not supported on `k1om'
/tmp/iccfF5ujM.s:293: Error: `pfacc' is not supported on `k1om'
/tmp/iccfF5ujM.s:294: Error: `pfmul' is not supported on `k1om'
/tmp/iccfF5ujM.s:295: Error: `prefetch' is not supported on `k1om'
/tmp/iccfF5ujM.s:296: Error: `pfadd' is not supported on `k1om'
/tmp/iccfF5ujM.s:297: Error: bad register name `%mm3'
/tmp/iccfF5ujM.s:298: Error: bad register name `%mm5'
/tmp/iccfF5ujM.s:303: Error: `femms' is not supported on `k1om'

While executing

icc -c -I../../include -I../../src/mesa -I../../src/gallium/include -I../../src/gallium/drivers -I../../src/gallium/auxiliary -mmic -Wall -Wmissing-prototypes -std=c99 -ffast-math -fno-strict-aliasing -fPIC -DUSE_X86_64_ASM -D_GNU_SOURCE -DPTHREADS -DHAVE_POSIX_MEMALIGN -DCHAN_BITS=32 -DDEFAULT_SOFTWARE_DEPTH_BITS=31 x86-64/xform4.S -o x86-64/xform4.o

Do you have any idea to go around these? Are these instructions not supported on MICs yet?

In the long run I'm just trying to compile VTK, but I first need to compile MESA for offscreen support (without X11, unless someone here tell me they've already been able to compile Xorg server and utilities on Phis).

Thanks in advance for any help.

0 Kudos
3 Replies
Kevin_D_Intel
Employee
816 Views

The app build process appears to build an assembly file containing instructions that are not valid for Xeon Phi™. There is a wealth of info/details available on the Intel Xeon Phi™ Coprocessor Developer site that may help. The instruction set reference is available on the Overview tab.

I don’t recall past discussions about this app on Xeon Phi™ so if you have not already you might contact the app authors for advice.

0 Kudos
Santiago_P_
Beginner
816 Views

Thanks for your help Kevin, I'll look into the references and wait for a response from the MESA3D mailing list.

0 Kudos
John-Michael_M_
Beginner
816 Views

I was able to cross compile Mesa 9.0.1 for the Phi with the following commands:

[bash]autoreconf --force --install

./configure CXX="icpc -mmic" CC="icc -mmic" F77="ifort -mmic" FC="ifort -mmic" --build=k1om-unknown-linux-gnu --prefix=$HOME/mesa-mic --enable-osmesa --with-dri-drivers= --with-gallium-drivers= --disable-egl --disable-dri

make CROSS_COMPILE=k1om- CROSS_COMPILE_TARGET=yes HOSTARCH=k1om BUILDARCH=x86_64-linux-gnu

make install CROSS_COMPILE_TARGET=yes[/bash]

Hope that helps.

JM

0 Kudos
Reply