Earlier this week Intel unveiled an update to the GCC compiler and the Linux kernel to better support its Knights Corner coprocessor. This purpose of this update was to improve support for compiling the Linux kernel, and Intel’s drivers, for the new chip. Intel is looking at Linux support for its MIC architecture as an extension of the code already in place for handling its original Pentium processors. Thus it’s basically reusing what was already in the kernel and adding support for three features that Knights Corner brings to the table.
Intel integrated its power management technologies into the design of the Knights Corner MIC, which is a very good thing considering the how quickly power usage can get out of hand on high-end compute products. Unfortunately, the old early ’90’s Pentiums didn’t actually support any of the power saving technologies that we’ve come to know and love today. Thus if you compiled the old Linux kernel for a Pentium chip, and you tried running it on a Knights Corner chip, it would function, but it would be completely unaware of all of the power saving goodies that two decades of continued x86 innovation have given us.
The second big feature that this update brings support for is a combination 64 bit computing and vector instructions. Modern computing didn’t really enter the 64 bit era until the early 2000’s, about a decade after the Pentium core that Intel’s MIC Architecture is based off of was in its prime. Thus up until this point you could run a standard Linux kernel on Knights Corner, but you couldn’t exceed that four gigabyte memory footprint per core. Additionally it was necessary to update the Linux kernel to support the new instructions for vector processing that Intel’s MIC brings. Those big vector units attached to each on of those little cores is just about useless if the OS isn’t aware of them.
The third major feature, the Knights Corner machine check architecture, is a bit boring to me and you, but a necessity for Intel’s efforts in this market space. For your reference a machine check architecture is a pretty self explanatory piece of technology that allows the processor to detect hardware problems. For example an exception would occur in Linux, prompted by this hardware, if an integer unit were to start returning bad calculations.
The one major feature that Intel left out of this update is full support within GCC for the, again massive, vector units that are attached to each core with in an MIC based chip. As we mentioned before Intel has updated the Linux kernel itself to support these vector units, but it appears that the rest of this specific tool chain isn’t quite there yet as they are recommending against using GCC for compiling applications to run on MIC based chips, due to GCC’s inability to vectorize code. Additionally, Intel is recognizing this as a legitimate problem and seems interested in working to resolve it with the GCC community.
Now this update to GCC and the Linux kernel comes as a larger update to Intel’s Many Integrated Cores Platform Software Stack or MPSS. This set of resources contains the software necessary to make the Knights Corner Coprocessor play nice with the rest of your system. This includes drivers for controlling an MIC chip, software that enables communication between the host system and the coprocessor, and a node to node communication tool that Intel calls the Symmetric Communication Interface or SCIF. This is a rather interesting API because it defines a “node” as a single Xeon or Knights Corner chip and it allows them to communicate directly over the PCI-E bus that is integrated onto both chips.
So Intel’s update to the Knights Corner software stack is a welcome event. The MIC architecture is quickly moving from an idea that looks really good on paper and has impressive prototype chips, to a practical competitor for solutions like Nvidia’s Tesla line of GPU based coprocessors. When Intel briefed us in November of last year, the first Knights Corner silicon had just come back from the Fabs, and eight months later it looks like things are shaping up nicely for an official launch near the end of the year. With Nvidia’s GK110 launching at about the same time it will be interesting to see how well traditional GPGPUs are able to compete with Intel’s increasingly dangerous coprocessor.S|A