<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.define-technology.com/mediawiki-1.35.0/index.php?action=history&amp;feed=atom&amp;title=Graphcore_M2000_Direct_Connect_Bringup</id>
	<title>Graphcore M2000 Direct Connect Bringup - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.define-technology.com/mediawiki-1.35.0/index.php?action=history&amp;feed=atom&amp;title=Graphcore_M2000_Direct_Connect_Bringup"/>
	<link rel="alternate" type="text/html" href="http://wiki.define-technology.com/mediawiki-1.35.0/index.php?title=Graphcore_M2000_Direct_Connect_Bringup&amp;action=history"/>
	<updated>2026-05-04T16:04:47Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.0</generator>
	<entry>
		<id>http://wiki.define-technology.com/mediawiki-1.35.0/index.php?title=Graphcore_M2000_Direct_Connect_Bringup&amp;diff=32475&amp;oldid=prev</id>
		<title>David: Created page with &quot;== Hardware Spec == At the time of writing, the current spec host system is based around: * AS-1024US-TRT (or similar H12 Ultra) * 2 x AMD 7402 CPUs * 16 x 32GB DIMMs * 2 x MC...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.define-technology.com/mediawiki-1.35.0/index.php?title=Graphcore_M2000_Direct_Connect_Bringup&amp;diff=32475&amp;oldid=prev"/>
		<updated>2021-02-02T22:25:06Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== Hardware Spec == At the time of writing, the current spec host system is based around: * AS-1024US-TRT (or similar H12 Ultra) * 2 x AMD 7402 CPUs * 16 x 32GB DIMMs * 2 x MC...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Hardware Spec ==&lt;br /&gt;
At the time of writing, the current spec host system is based around:&lt;br /&gt;
* AS-1024US-TRT (or similar H12 Ultra)&lt;br /&gt;
* 2 x AMD 7402 CPUs&lt;br /&gt;
* 16 x 32GB DIMMs&lt;br /&gt;
* 2 x MCX556A-EDAT (though 1 x single port version should suffice)&lt;br /&gt;
* At least on local drive for O/S and software install&lt;br /&gt;
&lt;br /&gt;
== Operating System ==&lt;br /&gt;
At the time of writing, the latest support version of Linux is &amp;#039;&amp;#039;&amp;#039;Ubuntu 18.04.4 LTS&amp;#039;&amp;#039;&amp;#039;. Install this as normal (minimal installation is fine). &amp;#039;&amp;#039;&amp;#039;CentOS 7.2&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;CentOS 8&amp;#039;&amp;#039;&amp;#039; are also supported but, as yet, untested at Boston.&lt;br /&gt;
&lt;br /&gt;
== Prerequisite Packages ==&lt;br /&gt;
A number of packages need to be installed using &amp;#039;&amp;#039;aptitude&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ipu-host-2:~# apt-get install apt-transport-https ibverbs-utils openjdk-8-jdk python3-virtualenv autoconf ipmitool php-cli python3-wheel automake jq php-curl qtcreator bc kcachegrind policykit-1 rdma-core build-essential libaio-dev protobuf-compiler screen ccache libboost-all-dev python-boto3 software-properties-common clang libeigen3-dev python-dev sshpass cmake libjson-c-dev python-lxml subversion curl libjson-c-doc python-numpy swig direnv libpci-dev python-pip sysfsutils dkms libpixman-1-dev python-pytest tar emacs libprotobuf-dev python-recommonmark tmux ethtool libtool python-requests u-boot-tools exuberant-ctags lldpad python-setuptools unzip flex m4 python-wheel valgrind g++ minicom python-yaml vim gawk moreutils python2 virtualenv gcc net-tools python3 wdiff gdb netcat python3-dev wget git parallel python3-numpy zip golang-go pciutils python3-pip htop perl python3-setuptools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And a few python packages which can be installed via &amp;#039;&amp;#039;pip&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ipu-host-2:~# pip install autograd paramiko pylint scp jstyleson pep8 pyyaml yapf mock pexpect requests&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== User Accounts ==&lt;br /&gt;
=== Account Overview ===&lt;br /&gt;
The following user accounts are required on the host system:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: grey&amp;quot;| Accounts&lt;br /&gt;
! style=&amp;quot;background: grey&amp;quot;| Function&lt;br /&gt;
|- valign=&amp;quot;middle&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| root&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| A root user account secured with a password is recommended.&lt;br /&gt;
|- valign=&amp;quot;middle&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| itadmin&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| An admin account secured with a password is recommended. Home folder located at /home/itadmin using bash shell.&lt;br /&gt;
|- valign=&amp;quot;middle&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| ipuuser&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| An account dedicated to IPU software and IPU-M2000 management software is mandatory. Home folder located at /home/ipuuser using bash shell.&lt;br /&gt;
|- valign=&amp;quot;middle&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| poplaruser&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| An account dedicated to Poplar software is mandatory. Home folder located at /home/poplaruser using bash shell.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
The following user accounts are present on the IPU M2000 system:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: grey&amp;quot;| Login to&lt;br /&gt;
! style=&amp;quot;background: grey&amp;quot;| Username&lt;br /&gt;
! style=&amp;quot;background: grey&amp;quot;| Password&lt;br /&gt;
|- valign=&amp;quot;middle&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| IPU-M2000 BMC OS&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| root&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| 0penBmc&lt;br /&gt;
|- valign=&amp;quot;middle&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| IPU-M2000 GW OS&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| itadmin&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| ChangeMeFdh5P&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Create Users on Host system ===&lt;br /&gt;
Create users with &amp;#039;&amp;#039;useradd&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ipu-host-2:~# useradd -m itadmin&lt;br /&gt;
root@ipu-host-2:~# useradd -m ipuuser&lt;br /&gt;
root@ipu-host-2:~# useradd -m poplaruser&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And set passwords with &amp;#039;&amp;#039;&amp;#039;passwd&amp;#039;&amp;#039;&amp;#039; (repeat for all users):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ipu-host-2:~# passwd itadmin&lt;br /&gt;
Enter new UNIX password: &lt;br /&gt;
Retype new UNIX password: &lt;br /&gt;
passwd: password updated successfully&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Double check that the default shell for each of these users is &amp;#039;&amp;#039;bash&amp;#039;&amp;#039;. Edit the &amp;lt;code&amp;gt;/etc/passwd&amp;lt;/code&amp;gt; file as appropriate, but each of these new users should look something like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ipuuser@ipu-host-2:~$ cat /etc/passwd&lt;br /&gt;
root:x:0:0:root:/root:/bin/bash&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
itadmin:x:1001:1001::/home/itadmin:/bin/bash&lt;br /&gt;
ipuuser:x:1002:1002::/home/ipuuser:/bin/bash&lt;br /&gt;
poplaruser:x:1003:1003::/home/poplaruser:/bin/bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add sudo rights ===&lt;br /&gt;
Edit the &amp;lt;code&amp;gt;/etc/sudoers&amp;lt;/code&amp;gt; file to look something like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ipuuser@ipuhost:~$ sudo cat /etc/sudoers&lt;br /&gt;
#&lt;br /&gt;
# This file MUST be edited with the &amp;#039;visudo&amp;#039; command as root.&lt;br /&gt;
#&lt;br /&gt;
# Please consider adding local content in /etc/sudoers.d/ instead of&lt;br /&gt;
# directly modifying this file.&lt;br /&gt;
#&lt;br /&gt;
# See the man page for details on how to write a sudoers file.&lt;br /&gt;
#&lt;br /&gt;
Defaults	env_reset&lt;br /&gt;
Defaults	mail_badpass&lt;br /&gt;
Defaults	secure_path=&amp;quot;/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Host alias specification&lt;br /&gt;
&lt;br /&gt;
# User alias specification&lt;br /&gt;
&lt;br /&gt;
# Cmnd alias specification&lt;br /&gt;
&lt;br /&gt;
# User privilege specification&lt;br /&gt;
root	ALL=(ALL:ALL) ALL&lt;br /&gt;
itadmin	ALL=(ALL:ALL) ALL&lt;br /&gt;
ipuuser	ALL=(ALL:ALL) ALL&lt;br /&gt;
&lt;br /&gt;
# Members of the admin group may gain root privileges&lt;br /&gt;
%admin ALL=(ALL) ALL&lt;br /&gt;
&lt;br /&gt;
# Allow members of group sudo to execute any command&lt;br /&gt;
%sudo	ALL=(ALL:ALL) ALL&lt;br /&gt;
&lt;br /&gt;
# See sudoers(5) for more information on &amp;quot;#include&amp;quot; directives:&lt;br /&gt;
&lt;br /&gt;
#includedir /etc/sudoers.d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Networking ==&lt;br /&gt;
=== Network Configuration Overview ===&lt;br /&gt;
The Host system should have interfaces configured as follows:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: grey&amp;quot;| Port&lt;br /&gt;
! style=&amp;quot;background: grey&amp;quot;| Role&lt;br /&gt;
! style=&amp;quot;background: grey&amp;quot;| Link&amp;lt;br/&amp;gt;Speed&lt;br /&gt;
! style=&amp;quot;background: grey&amp;quot;| IP address&lt;br /&gt;
! style=&amp;quot;background: grey&amp;quot;| Configured From&lt;br /&gt;
|- valign=&amp;quot;middle&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| enp65s0f0&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| External connectivity to IT infrastructure&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| 1GbE&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| 192.168.8.20x/20&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| Static or DHCP lease&lt;br /&gt;
|- valign=&amp;quot;middle&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| enp65s0f1&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| Management of IPU-M2000&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| 1GbE&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| 10.1.3.101/22&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| Static&lt;br /&gt;
|- valign=&amp;quot;middle&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| enp129s0f0&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| Unused&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| 100GbE&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| N/A&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| N/A&lt;br /&gt;
|- valign=&amp;quot;middle&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| enp129s0f1&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| RDMA interface to IPU-M2000&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| 100GbE&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| 10.1.5.5/24&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| Static&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The IPU M2000 system should have interfaces configured as follows:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: grey&amp;quot;| Port&lt;br /&gt;
! style=&amp;quot;background: grey&amp;quot;| Role&lt;br /&gt;
! style=&amp;quot;background: grey&amp;quot;| Link&amp;lt;br/&amp;gt;Speed&lt;br /&gt;
! style=&amp;quot;background: grey&amp;quot;| IP address&lt;br /&gt;
! style=&amp;quot;background: grey&amp;quot;| Configured From&lt;br /&gt;
|- valign=&amp;quot;middle&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| IPU&amp;lt;br/&amp;gt;Mgmt Port&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| BMC+GW management ports&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| 1GbE&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| BMC: 10.1.1.1/22&amp;lt;br/&amp;gt;GW: 10.1.2.1/22&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| Static lease from DHCP server&lt;br /&gt;
|- valign=&amp;quot;middle&amp;quot;&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| IPU&amp;lt;br/&amp;gt;100GbE #1&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| Host-link data-plane link to IPU-M2000s&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| 100GbE&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| 10.1.5.2/30&lt;br /&gt;
! style=&amp;quot;background: white&amp;quot;| Static lease from DHCP server&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Onboard Intel Network Drivers ===&lt;br /&gt;
==== Build Intel NIC drivers ====&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;It may be necessary to install a temporary NIC in order to pull down build tools and drivers&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Install &amp;lt;code&amp;gt;build-essentials&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ipuuser@ipuhost:~$ sudo apt-get install build-essentials&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Copy the Intel NIC driver to the system and decompress the archive:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ipuuser@ipuhost:~$ tar zxvf i40e-2.13.10.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Switch to the source directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ipuuser@ipuhost:~$ cd nic_temp/i40e-2.13.10/src/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ipuuser@ipuhost:~$ make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Modprobe&amp;lt;/code&amp;gt; the new driver module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ipuuser@ipuhost:~$ sudo modprobe i40e&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Configure IP address for onboard NIC ====&lt;br /&gt;
Edit the &amp;lt;code&amp;gt;/etc/netplan/01-netcfg.yaml&amp;lt;/code&amp;gt; file to look something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ipuuser@ipuhost:~$ cat /etc/netplan/01-netcfg.yaml&lt;br /&gt;
# This file describes the network interfaces available on your system&lt;br /&gt;
# For more information, see netplan(5).&lt;br /&gt;
network:&lt;br /&gt;
  version: 2&lt;br /&gt;
  renderer: networkd&lt;br /&gt;
  ethernets:&lt;br /&gt;
    enp65s0f0:&lt;br /&gt;
      addresses:&lt;br /&gt;
        - 192.168.8.201/20&lt;br /&gt;
      gateway4: 192.168.5.1&lt;br /&gt;
      nameservers:&lt;br /&gt;
        addresses: [192.168.5.3, 192.168.5.2]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apply the Netplan config:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ipuuser@ipuhost:~$ sudo netplay apply&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mellanox Network Drivers ===&lt;br /&gt;
==== Add Mellanox Repos ====&lt;br /&gt;
Add the Mellanox repositories so we can install the necessary Mellanox drivers:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /etc/apt/sources.list.d/&lt;br /&gt;
curl -LO https://linux.mellanox.com/public/repo/mlnx_ofed/latest/ubuntu18.04/mellanox_mlnx_ofed.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the &amp;#039;&amp;#039;&amp;#039;.list&amp;#039;&amp;#039;&amp;#039; file so it looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ipuuser@ipu-host-2:/etc/apt/sources.list.d$ cat mellanox_mlnx_ofed.list &lt;br /&gt;
#&lt;br /&gt;
# Mellanox Technologies Ltd. public repository configuration file.&lt;br /&gt;
# For more information, refer to http://linux.mellanox.com&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# [mlnx_ofed_5.2-1.0.4.0_base]&lt;br /&gt;
deb [trusted=yes] http://linux.mellanox.com/public/repo/mlnx_ofed/5.2-1.0.4.0/ubuntu18.04/$(ARCH) ./&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pull down a copy of the Mellanox GPG key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ipu-host-3:/etc/apt/sources.list.d# wget -qO - https://www.mellanox.com/downloads/ofed/RPM-GPG-KEY-Mellanox | sudo apt-key add -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update the aptitude database and install the Mellanox OFED package:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ipu-host-2:~$ apt update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Install and configure Mellanox drivers ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ipu-host-2:~$ apt-get install mlnx-ofed-all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensure the interfaces are configured to &amp;#039;&amp;#039;&amp;#039;Ethernet&amp;#039;&amp;#039;&amp;#039; rather than &amp;#039;&amp;#039;&amp;#039;Infiniband&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ipu-host-2:~$ mlxconfig -d /dev/mst/mt4121_pciconf0 query&lt;br /&gt;
root@ipu-host-2:~$ mlxconfig -d /dev/mst/mt4121_pciconf0 set LINK_TYPE_P1=2&lt;br /&gt;
root@ipu-host-2:~$ mlxconfig -d /dev/mst/mt4121_pciconf0 set LINK_TYPE_P2=2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Reboot the server&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== Netplan configuration ===&lt;br /&gt;
Networking on the Host system is configured by &amp;#039;&amp;#039;&amp;#039;Netplan&amp;#039;&amp;#039;&amp;#039;. The &amp;lt;code&amp;gt;/etc/netplan/01-netcfg.yaml&amp;lt;/code&amp;gt; configuration file should look something like this (to reflect the table above):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ipu-host-2:~# cat /etc/netplan/01-netcfg.yaml &lt;br /&gt;
# This file describes the network interfaces available on your system&lt;br /&gt;
# For more information, see netplan(5).&lt;br /&gt;
network:&lt;br /&gt;
  version: 2&lt;br /&gt;
  renderer: networkd&lt;br /&gt;
  ethernets:&lt;br /&gt;
    enp65s0f0:&lt;br /&gt;
      addresses:&lt;br /&gt;
        - 192.168.8.202/20&lt;br /&gt;
      gateway4: 192.168.5.1&lt;br /&gt;
      nameservers:&lt;br /&gt;
        addresses: [192.168.5.3, 192.168.5.2]&lt;br /&gt;
    enp65s0f1:&lt;br /&gt;
      addresses:&lt;br /&gt;
        - 10.1.3.101/22&lt;br /&gt;
    enp129s0f1:&lt;br /&gt;
      addresses:&lt;br /&gt;
        - 10.1.5.5/24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Apply the Netplan configuration:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ipu-host-2:~# netplan apply&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DHCP Server ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
An &amp;#039;&amp;#039;&amp;#039;isc-dhcp-server&amp;#039;&amp;#039;&amp;#039; is required on the host system to provide the IPU M2000 system with the appropriate IP address (detailed above). It can be installed from the standard repos&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ipu-host-2:~# apt-get install isc-dhcp-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Interface Configuration file ===&lt;br /&gt;
The &amp;lt;code&amp;gt;/etc/default/isc-dhcp-server&amp;lt;/code&amp;gt; file dictates which interfaces will be serviced by the DHCP server service. It should look something like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ipu-host-2:~# cat /etc/default/isc-dhcp-server&lt;br /&gt;
INTERFACESv4=&amp;quot;enp65s0f1 enp129s0f1&amp;quot;&lt;br /&gt;
INTERFACESv6=&amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Main DHCP configuration file ===&lt;br /&gt;
The &amp;lt;code&amp;gt;/etc/dhcp/dhcpd.conf&amp;lt;/code&amp;gt; file provides configuration information for the DHCP server service. It should look something like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ipu-host-2:~# cat /etc/dhcp/dhcpd.conf&lt;br /&gt;
default-lease-time 600;&lt;br /&gt;
max-lease-time 1200;&lt;br /&gt;
ddns-update-style none;&lt;br /&gt;
authoritave;&lt;br /&gt;
log-facility local7;&lt;br /&gt;
&lt;br /&gt;
subnet 10.1.5.0 netmask 255.255.255.0 {&lt;br /&gt;
    option subnet-mask 255.255.255.0;&lt;br /&gt;
    range 10.1.5.2 10.1.5.2;&lt;br /&gt;
}&lt;br /&gt;
subnet 10.1.0.0 netmask 255.255.252.0 {&lt;br /&gt;
        option subnet-mask 255.255.252.0;&lt;br /&gt;
}&lt;br /&gt;
host ipum1bmc { hardware ethernet 70:69:79:20:13:b4; fixed-address 10.1.1.1; }&lt;br /&gt;
host ipum1gw { hardware ethernet 70:69:79:20:13:b5; fixed-address 10.1.2.1; }&lt;br /&gt;
&lt;br /&gt;
host ipum1mx { hardware ethernet 0c:42:a1:78:89:cd; fixed-address 10.1.5.2; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Start and enable the DHCP Service ===&lt;br /&gt;
Start the DHCP service with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ipu-host-2:~# systemctl start isc-dhcp-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Enable the DHCP service with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ipu-host-2:~# systemctl enable isc-dhcp-server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Check the status of the DHCP service with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ipu-host-2:~# systemctl status isc-dhcp-server&lt;br /&gt;
● isc-dhcp-server.service - ISC DHCP IPv4 server&lt;br /&gt;
   Loaded: loaded (/lib/systemd/system/isc-dhcp-server.service; enabled; vendor preset: enabled)&lt;br /&gt;
   Active: active (running) since Tue 2021-01-19 16:43:43 GMT; 1 day 22h ago&lt;br /&gt;
     Docs: man:dhcpd(8)&lt;br /&gt;
 Main PID: 3474 (dhcpd)&lt;br /&gt;
    Tasks: 1 (limit: 19660)&lt;br /&gt;
   CGroup: /system.slice/isc-dhcp-server.service&lt;br /&gt;
           └─3474 dhcpd -user dhcpd -group dhcpd -f -4 -pf /run/dhcp-server/dhcpd.pid -cf /etc/dhcp/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
Jan 21 15:36:08 ipu-host-2 dhcpd[3474]: DHCPREQUEST for 10.1.1.1 from 70:69:79:20:13:b4 via enp65s0f1&lt;br /&gt;
Jan 21 15:36:08 ipu-host-2 dhcpd[3474]: DHCPACK on 10.1.1.1 to 70:69:79:20:13:b4 via enp65s0f1&lt;br /&gt;
Jan 21 15:36:11 ipu-host-2 dhcpd[3474]: DHCPREQUEST for 10.1.2.1 from 70:69:79:20:13:b5 via enp65s0f1&lt;br /&gt;
Jan 21 15:36:11 ipu-host-2 dhcpd[3474]: DHCPACK on 10.1.2.1 to 70:69:79:20:13:b5 via enp65s0f1&lt;br /&gt;
Jan 21 15:36:24 ipu-host-2 dhcpd[3474]: DHCPREQUEST for 10.1.5.2 from 0c:42:a1:78:89:cd via enp129s0f1&lt;br /&gt;
Jan 21 15:36:24 ipu-host-2 dhcpd[3474]: DHCPACK on 10.1.5.2 to 0c:42:a1:78:89:cd via enp129s0f1&lt;br /&gt;
Jan 21 15:41:07 ipu-host-2 dhcpd[3474]: DHCPREQUEST for 10.1.1.1 from 70:69:79:20:13:b4 via enp65s0f1&lt;br /&gt;
Jan 21 15:41:07 ipu-host-2 dhcpd[3474]: DHCPACK on 10.1.1.1 to 70:69:79:20:13:b4 via enp65s0f1&lt;br /&gt;
Jan 21 15:41:10 ipu-host-2 dhcpd[3474]: DHCPREQUEST for 10.1.2.1 from 70:69:79:20:13:b5 via enp65s0f1&lt;br /&gt;
Jan 21 15:41:10 ipu-host-2 dhcpd[3474]: DHCPACK on 10.1.2.1 to 70:69:79:20:13:b5 via enp65s0f1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NTP Server Service ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
NTP service is recommended to provide network time configuration to IPU-M2000 systems. It can be installed from the Ubuntu repositories:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ipu-host-2:~# apt-get install ntp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
The &amp;lt;code&amp;gt;etc/ntp.conf &amp;lt;/code&amp;gt; file details the configuration for the NTP server; it should look something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ipu-host-2:~# grep -v &amp;quot;#&amp;quot; /etc/ntp.conf &lt;br /&gt;
&lt;br /&gt;
driftfile /var/lib/ntp/ntp.drift&lt;br /&gt;
&lt;br /&gt;
leapfile /usr/share/zoneinfo/leap-seconds.list&lt;br /&gt;
&lt;br /&gt;
includefile /etc/ntp/crypto/pw&lt;br /&gt;
keys /etc/ntp/keys&lt;br /&gt;
fudge 127.127.1.0 stratum 10&lt;br /&gt;
pool 0.ubuntu.pool.ntp.org iburst&lt;br /&gt;
pool 1.ubuntu.pool.ntp.org iburst&lt;br /&gt;
pool 2.ubuntu.pool.ntp.org iburst&lt;br /&gt;
pool 3.ubuntu.pool.ntp.org iburst&lt;br /&gt;
pool ntp.ubuntu.com&lt;br /&gt;
&lt;br /&gt;
restrict 127.0.0.1&lt;br /&gt;
restrict ::1&lt;br /&gt;
restrict source notrap nomodify noquery&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Start and enable the NTP Service ===&lt;br /&gt;
Start the NTP service with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ipu-host-2:~# systemctl start ntp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Enable the NTP service with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ipu-host-2:~# systemctl enable ntp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Check the status of the NTP service with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ipu-host-2:~# systemctl status ntp&lt;br /&gt;
● ntp.service - Network Time Service&lt;br /&gt;
   Loaded: loaded (/lib/systemd/system/ntp.service; enabled; vendor preset: enabled)&lt;br /&gt;
   Active: inactive (dead)&lt;br /&gt;
     Docs: man:ntpd(8)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Syslog ==&lt;br /&gt;
Syslog is a software utility for forwarding log messages in an IP network.&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
The &amp;lt;code&amp;gt;/etc/rsyslog.conf&amp;lt;/code&amp;gt; file should look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ipu-host-2:~# grep &amp;quot;^[^#;]&amp;quot; /etc/rsyslog.conf &lt;br /&gt;
module(load=&amp;quot;imuxsock&amp;quot;) # provides support for local system logging&lt;br /&gt;
module(load=&amp;quot;imudp&amp;quot;)&lt;br /&gt;
input(type=&amp;quot;imudp&amp;quot; port=&amp;quot;514&amp;quot;)&lt;br /&gt;
module(load=&amp;quot;imtcp&amp;quot;)&lt;br /&gt;
input(type=&amp;quot;imtcp&amp;quot; port=&amp;quot;514&amp;quot;)&lt;br /&gt;
module(load=&amp;quot;imklog&amp;quot; permitnonkernelfacility=&amp;quot;on&amp;quot;)&lt;br /&gt;
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat&lt;br /&gt;
$RepeatedMsgReduction on&lt;br /&gt;
$FileOwner syslog&lt;br /&gt;
$FileGroup adm&lt;br /&gt;
$FileCreateMode 0640&lt;br /&gt;
$DirCreateMode 0755&lt;br /&gt;
$Umask 0022&lt;br /&gt;
$PrivDropToUser syslog&lt;br /&gt;
$PrivDropToGroup syslog&lt;br /&gt;
$WorkDirectory /var/spool/rsyslog&lt;br /&gt;
$IncludeConfig /etc/rsyslog.d/*.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;/etc/rsyslog.d/99_ipum.conf&amp;lt;/code&amp;gt; file should look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ipu-host-2:~# grep &amp;quot;^[^#;]&amp;quot; /etc/rsyslog.d/99_ipum.conf &lt;br /&gt;
$template precise,&amp;quot;%fromhost-ip%,%HOSTNAME%,%syslogpriority%,%syslogfacility%,%timegenerated::fulltime%,%syslogtag%,%msg%\n&amp;quot;&lt;br /&gt;
	:HOSTNAME, contains, &amp;quot;ipum&amp;quot; /var/log/ipulogs/ipulogs;precise&lt;br /&gt;
	&amp;amp; ~&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;/etc/rsyslog.d/99_dhcpd.conf&amp;lt;/code&amp;gt; file should look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@ipu-host-2:~# grep &amp;quot;^[^#;]&amp;quot; /etc/rsyslog.d/99_dhcpd.conf&lt;br /&gt;
local7.* /var/log/dhcpd.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Graphcore Software Installation ==&lt;br /&gt;
The following Graphcore software packages need to be installed on the server:&amp;lt;br/&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;V-IPU server&amp;#039;&amp;#039;&amp;#039; contains management and control software for IPU resource control, built-in self-test (BIST) and monitoring of the IPU-M2000s and IPUs. There is a V-IPU Admin Guide and a V-IPU User Guide available.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;IPU-M2000 system software&amp;#039;&amp;#039;&amp;#039; contains the latest IPU-M2000 resident software for update, if required. It also includes the server resident tool &amp;lt;code&amp;gt;rack_tool&amp;lt;/code&amp;gt; which is required for updating the IPU-M2000s resident software and testing the system hardware.&lt;br /&gt;
&lt;br /&gt;
=== V-IPU server installation ===&lt;br /&gt;
Both the release notes and the V-IPU software release tarball are available from the Graphcore download portal https://downloads.graphcore.ai&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An installation script called &amp;lt;code&amp;gt;install.sh&amp;lt;/code&amp;gt; is included with the V-IPU tarball. The installation script has been tested and verified to work with Ubuntu and CentOS distros that&lt;br /&gt;
use systemd as the default service manager. The installation script needs to be executed with root privileges (sudo ./install.sh) as it copies the &amp;#039;&amp;#039;&amp;#039;vipu-server&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;vipu-admin&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;vipu&amp;#039;&amp;#039;&amp;#039; binaries to &amp;lt;code&amp;gt;/usr/local/bin&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Ensure you are logged in as ipuuser&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The script will configure and start &amp;lt;code&amp;gt;vipu-server.service&amp;lt;/code&amp;gt;.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the following example, the system is cabled according to the standard instructions where “enp65s0f0” is the host server interface that connects to the top IPU-M2000 management port at the top of the stack.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ipuuser@ipu-host-2:~$ sudo ./install.sh&lt;br /&gt;
Do you want to start the vipu-server as a service in this host? Note that you should have vipu-server running only in one host and use vipu/vipu-admin to connect to it from all other hosts.&lt;br /&gt;
&lt;br /&gt;
(N/y) y&lt;br /&gt;
&lt;br /&gt;
Choose an interface to use for agent auto-discovery: eno0&lt;br /&gt;
&lt;br /&gt;
enp65s0f0&lt;br /&gt;
enp65s0f1&lt;br /&gt;
lo&lt;br /&gt;
&lt;br /&gt;
Enter disable to deactivate the auto-discovery&lt;br /&gt;
Which interface should be used for auto-discovery? enp65s0f0&lt;br /&gt;
&lt;br /&gt;
- vipu-server will be configured to be run as a service in this host&lt;br /&gt;
- Initialising /etc/vipu/config.hcl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== IPU-M2000 Server Software Installation ===&lt;br /&gt;
The IPU-M2000 system software contains a set of upgradable software and FPGA sub- components that are targeted to be executed on the IPU-M2000 units. The release also contains the tool &amp;lt;code&amp;gt;rack_tool&amp;lt;/code&amp;gt; which is used for the software upgrade and other rack related tasks targeting the IPU-M2000s.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Ensure you are logged in as ipuuser&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go to the Graphcore download portal https://downloads.graphcore.ai and download the latest release into your home directory&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unpack the tarball:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ipuuser@ipu-host-2:~$ tar xvf IPU_M_SW-2.0.0.rc.3.tar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install the software/tools:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ipuuser@ipu-host-2:~$ cd ~/IPU_M_SW-2.0.0-rc.3+a51e75a/maintenance_tools/&lt;br /&gt;
ipuuser@ipu-host-2:~$ ./install.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== rack_tool Configuration ===&lt;br /&gt;
&amp;lt;code&amp;gt;rack_tool&amp;lt;/code&amp;gt; requires a config file which contains information on all the IPU-M2000s it will control. The information in the config file defines all IP addresses of the BMC, GW and RNIC interfaces.&amp;lt;br/&amp;gt;&lt;br /&gt;
Create a directory for the configuration file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ipuuser@ipu-host-2:~$ mkdir -p $HOME/.rack_tool&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Your &amp;lt;code&amp;gt;/home/ipuuser/.rack_tool/rack_config.json&amp;lt;/code&amp;gt; should look something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ipuuser@ipu-host-2:~$ cat /home/ipuuser/.rack_tool/rack_config.json &lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;global_credentials&amp;quot;: {&lt;br /&gt;
        &amp;quot;bmc_username&amp;quot;: &amp;quot;root&amp;quot;,&lt;br /&gt;
        &amp;quot;bmc_passwd&amp;quot;: &amp;quot;0penBmc&amp;quot;,&lt;br /&gt;
        &amp;quot;gw_username&amp;quot;: &amp;quot;itadmin&amp;quot;,&lt;br /&gt;
        &amp;quot;gw_passwd&amp;quot;: &amp;quot;ChangeMeFdh5P&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;gw_root_overlay&amp;quot;: &amp;quot;/home/ipuuser/IPU-M_releases/IPU_M_SW-2.0.0-rc.3+a51e75a/maintenance_tools/ipu_pod_config/root-overlay/&amp;quot;,&lt;br /&gt;
    &amp;quot;machines&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;m01&amp;quot;,&lt;br /&gt;
            &amp;quot;bmc_ip&amp;quot;: &amp;quot;10.1.1.1&amp;quot;,&lt;br /&gt;
            &amp;quot;gw_ip&amp;quot;: &amp;quot;10.1.2.1&amp;quot;,&lt;br /&gt;
            &amp;quot;mx_ip&amp;quot;: &amp;quot;10.1.5.2&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Copy root-overlay file system ===&lt;br /&gt;
A root-overlay file system is used to pass configuration of the NTP and syslog into the IPU- M2000 software. The rack_config.json file above refers to the path of these files. The path is either relative to the location of the rack_config.json or an absolute path. The easiest is to copy over the files to the default location:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ipuuser@ipu-host-2:~$ cd /home/ipuuser/IPU-M_releases/IPU_M_SW-2.0.0-rc.3+a51e75a/maintenance_tools/ipu_pod_config&lt;br /&gt;
ipuuser@ipu-host-2:~$ cp -r root-overlay /home/ipuuser/.rack_tool/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>David</name></author>
	</entry>
</feed>