The Intel’s next generation Xeon Phi™ processor family x200 product (code-name Knights Landing) brings in new memory technology, a high bandwidth on package memory called Multi-Channel DRAM (MCDRAM) in addition to the traditional DDR4. MCDRAM is a high bandwidth (~4x more than DDR4), low capacity (up to 16GB) memory, packaged with the Knights Landing Silicon. MCDRAM can be configured as a third level cache (memory side cache) or as a distinct NUMA node (allocatable memory) or somewhere in between. With the different memory modes by which the system can be booted, it becomes very challenging from a software perspective to understand the best mode suitable for an application.
At the same time, it is also very essential to utilize the available memory bandwidth in MCDRAM efficiently without leaving any performance on the table.
The tutorial cover methods and tools for users to analyze the suitable memory mode for an application. These tutorials also cover the use the “memkind” library interface, a user-extensible heap manager built on top of jemalloc. This library interface lets users change their application memory allocations to the high bandwidth MCDRAM as opposed to the standard DDR4.
Video Presentation: MCDRAM on 2nd generation Intel® Xeon Phi™ processor
Tutorial Material (PDF):
In this tutorial you will be able to:
- Understand the different modes of MCDRAM and how to use them
- Identify whether an application can benefit from MCDRAM
- How to place data structures in MCDRAM
- How to perform test & emulation of MCDRAM-enabled code on a NUMA machine
The code samples used in the above data structures section are here (ZIP):
Try it yourself!