I recently tried to get the Intel Xeon Phi Software Stack (Manycore Platform
Software Stack, MPSS) to run under Ubuntu 12.04. More exactly, the version
KNC_gold_update_1-2.1.4982. Ubuntu is not supported (yet), but it did not
prove to be too difficult. As Google wasn't exactly helpful with setting this
up, I'm writing this blog post in the hope that others googling for
"mpss ubuntu" will find it and it will be helpful for them. Note that this is
not a complete HowTo though, but it should help you get going. Use at your own
risk.
- The first step is to download KNC_gold_update_1-2.1.4982-15-suse-11.2.tgz, i.e.
the version for SLES11 SP2 offered on Intels download pages.
- Unpack the tgz,
and inside you will find some RPMs and a bunch of subdirectories. The RPMs are
the important part here: Convert them all with "alien --scripts", except
intel-mic-kmod-2.1.4982-15.3.0.13.0.suse.x86_64.rpm which contains the
kernel modules that would be surprisingly unhelpful on an Ubuntu kernel.
- The kernel modules will have to be rebuilt for the Ubuntu kernel from
source, and their source will have to be patched as they're not compatible with
the 3.2 kernel in Ubuntu 12.04. There is
more than one way to do this, I choose to use the provided spec-file and
then convert the resulting RPM. The
source of the kernel modules is hidden in src/intel-mic-kmod-2.1.4982-15.suse.src.rpm.
Unpack that with rpm2cpio src/intel-mic-kmod-2.1.4982-15.suse.src.rpm | cpio -idmv
and you get a spec file and a .tar.bz2. You need to put these two files and the patchfile
intel-mic-mpss21up1-kmod-2.1.4982.patch
into your rpmbuild SOURCES/SPECS directory. The spec-file needs to be patched with
intel-mic-mpss21up1-kmodspecfile.patch,
after that you can run rpmbuild -bb intel-mic-kmod.spec. The result
of this will be an intel-mic-kmod-2.1.4982-15.3.2.0.38.rpm.x86_64.rpm,
which you need to convert with "alien" again into a
intel-mic-kmod_2.1.4982-16.3_amd64.deb.
- Install the kernel module .deb together with the .debs you converted in
step 1.
- micctrl and the other tools put their libraries into /usr/lib64,
which does not normally exist anymore in Ubuntu 12.04, thus the linker is not
searching for libraries there. You need to
echo "/usr/lib64/" > /etc/ld.so.conf.d/mic.conf
and then run ldconfig to fix that.
- By now you should be able to execute micctrl without major error
messages, but you cannot really do much, because mpssd needs to be running
for the card to actually do anything.
- The init-script for mpssd needs to be adapted so it actually starts the
mpssd. I cannot post my patch for the initscript, as it contains quite a lot
of messy workarounds tailored to our system. However, to actually get the script to work,
you only need to fix one thing: Just replace the line that reads
startproc -t 1 $exec with these two:
[ -d "/var/lock/subsys" ] || mkdir /var/lock/subsys
start-stop-daemon --start --exec $exec
After this the script will still print A LOT of error messages about
all the missing rc_* stuff, but it will actually start and stop the mpssd daemon
now.
- Normally, the configuration of the virtual micN
network-interfaces would happen automatically, but as the Intel stack knows
nothing about the "Debian/Ubuntu way of things", it cannot do that. You will
need to manually edit /etc/network/interfaces and give them a proper
configuration. In the default network config, the card gets the IP 172.31.1.1
and no bridging, so a proper entry in /etc/network/interfaces would
look something like this:
iface mic0 inet static
address 172.31.1.254
netmask 255.255.255.0
So that's it, you can now start to play around with the card. Which is not
always an easy task.
For example, it seems MPSS has never heard of these fancy things like "directory
services" where you do not create all users locally on all of your computers,
but in a central directory instead. This is probably because Intel is such a
small company that they only have 2 or 3 computers, so this isn't relevant for
them.
But I will leave my ranting about the immatureness of the system software stack
for an otherwise nice product sold at a quite significant price
tag (ca. 2500 Euros) for another time.
|
6 comments
Hi,
As things are evolving quickly, I was wondering if you have you tried to install MPSS3.1 with Ubuntu12.04.03LTS? If so, ;-) could you help me out.
Thanks in advance.
Jofre |
Jofre |
31.10.2013 12:40 |
I have not, at least not yet. |
PoempelFox |
31.10.2013 19:25 |
You can download a patch for MPSS 3.1.2 kernel module. mic.ko, from here:
http://software.intel.com/sites/default/files/mpss_mod_patch.txt
Copy it into mpss-modules-3.1.2 source directory and apply:
patch -p1 < mpss_mod_patch.txt
|
Alexei |
11.02.2014 19:27 |
Hi,
I am trying to install MPSS3.1.4 with Ubuntu 12.04.1. I am following your instructions and adapting when it is neccesary. For the moment it does not run, but I hope it will be able to run soon.
If you can help me for the last steps I will be very glad.
Did you try this installation ? May you help me ?
Thanks.
Virginie |
Vivi |
11.03.2014 13:37 |
Hi !
I need to install Xeon Phi, but my motherboard is not compatible. I will buy a new one, but I want to be sure of my choice.
Could you tell me which one you are using for Xeon Phi ?
Thanks in advance. |
Virginie |
14.03.2014 10:44 |
ASUS P9X79W works NOT the P9X79L.
Specifications about PCI interface are criticals.
|
AloMoi |
20.04.2016 08:19 |
write a new comment:
|