RAM is one of the essential components of the PC, because without it the CPU that runs the programs could not function. That’s why tools for measuring performance between CPU and RAM, both for measuring bandwidth and latency, are welcome. The Intel Memory Latency Checker is one of them, and it does both.
What is Intel Memory Latency Checker?
Intel Memory Checker is a small program that has a version for Linux and Windows, in both cases it is not a program that runs from a GUI, so you will need to run it from a terminal if you are in Linux or from PowerShell or the Windows command prompt.
The Intel Memory Latency Checker is a small application that actually measures the latency between the system’s processor and its RAM. Not only that, but it measures the latency of other things communicating with the CPU and memory, as the MLC can be used for the following functions:
- To measure latencies between a specific memory address and one of the processor cores.
- We can measure the latencies of each of the cache levels with the memory latency checker, and even measure the transfer latencies between the cache and the processor cache.
- We can measure the bandwidth for different ratios of read and write operations with RAM.
- Measure latency for random access to RAM rather than sequentially. In other words, do not access consecutive memory addresses.
- You can vary the size of the memory block with which you want to perform the benchmark, in order to measure the latency as a function of the size of the data block.
The Intel Memory Latency Checker uses the processor threads in the following way: all cores except one generate memory requests to overload its RAM access, while the last core performs the telemetry of the processor. when they take, that is, measures the actual latency of each transfer.
How do I install Intel Memory Latency Checker?
The process is very simple, first of all once we have downloaded the file from the Intel page, just unzip it, we recommend that you install 7-Zip as a decompressor, because it will allow you to directly download unzip the file. The initial file is in tgz extension, when you unzip it you will get another file, in tar format, which you will have to unzip again to get the final folder, which should appear as follows on your PC.
If you double click on the folder called Windows, you will get three files, select the files called mlc.exe and mlcdrv.sys and copy them. To install MLC, you will only have to copy the files to the folder of your choice, as it is essentially a portable application that only requires these two files to function. We installed it in C: / Program Files (x86) / Intel MLC. Although for this we had to create the Intel MLC folder in the Program Files (x86) folder.
Through the command prompt and using MS-DOS commands, we navigated to the folder where Intel MLC is installed and wrote the MLC command to run the application. If the installation is successful, the MLC will run all of its tests one after the other.
Measuring Latency with the Memory Latency Checker
Contrary to what many people think, accessing RAM depends on many factors, one of which is latency, which increases with contention. The term memory contention means what happens when a processor core or other component needs to access system RAM, which creates additional delay and therefore increases latency.
If we want to measure the latency when the memory is occupied, just type mlc –idle_latency on the command line. Another way to measure latency is to ask all but one of the threads in the system to create memory requests, we can do this by typing mlc –latence_loaded on the command line.
Bandwidth measurement with Intel MLC
The Intel MLC is not only used to measure memory latency, but also memory bandwidth. The first of the commands is mlc –max_bandwidth this allows us to know the maximum bandwidth for different memory access scenarios.
The other command to measure bandwidth is mlc –peak_injection_bandwidth What it does is generate memory requests from each of the cores at the maximum possible speed.
Measuring cache latency with Intel MLC
The Intel MLC also makes it possible to measure the latency between the cores and the processor L2 cache or, failing this, with the last level cache and therefore the one before the memory controller. To do this, just write in the command line mlc –c2c_latency.
Multiprocessor measurements
First of all, do not confuse multiprocessor and multicore, because in this case we are talking about a measurement between the different sockets with the RAM. For example, if we run the command mlc –latency_matrix To measure latency in an 8-core processor for a laptop, what we’re going to get is the following:
Which indicates that there is only one processor in the system, the same happens if we use the command mlc – bandwidth_matrix to measure bandwidth.
So these options only work if we have a system with multiple processors and each installed in its own socket, as is the case with Intel Xeon or AMD EPYC.
Disabling Intel Hyper Threading
Estos comandos usa todos los hilos de ejecución de la CPU, pero si queremos medir la latencia con un solo hilo de ejecución necesitamos utilizar el parametro -X al final de la línea de comandos, por ejemplo si ejecutamos todos solo laso pruerem that rendosim To write mlc -X.
Where X is the parameter in the Intel Memory Latency Checker that tells you to use a single thread of execution. We remind you in passing that there is a difference between lower case and upper case and that “X” in this case is in upper case. You can run this setting with one of the commands we have described, in order to find out what the performance is between a processor and memory when multithreading has been disabled.
Table of Contents