From 2ea0c0b60cf10150eefe6a8eaafd6fb0a45fa156 Mon Sep 17 00:00:00 2001 From: Tiziano Zito Date: Wed, 13 Aug 2025 13:58:07 +0200 Subject: [PATCH 1/4] add all materials --- README.md | 93 + architecture/GPUvsCPU-architecture.png | Bin 0 -> 93850 bytes architecture/NAND-gate.svg | 67 + architecture/README.md | 121 + architecture/comp_architecture_schematics.svg | 1 + architecture/cpu_clock_rate.csv | 201 ++ architecture/cpu_clock_rate.py | 83 + architecture/cpu_clock_rate.svg | 2047 +++++++++++++ architecture/memory.csv | 148 + architecture/memory.py | 101 + architecture/memory_bandwidth.svg | 2563 +++++++++++++++++ architecture/memory_clock.svg | 1734 +++++++++++ architecture/memory_latency.svg | 1944 +++++++++++++ architecture/storage.csv | 49 + architecture/storage.py | 54 + architecture/storage.svg | 1526 ++++++++++ architecture/topology.png | Bin 0 -> 31325 bytes benchmark_low_level/README.md | 57 + benchmark_low_level/bandwidth-t14.svg | 1719 +++++++++++ benchmark_low_level/latency-t14.svg | 1801 ++++++++++++ benchmark_low_level/parse_results.py | 39 + benchmark_low_level/plot.py | 115 + benchmark_low_level/results_t14 | 485 ++++ benchmark_low_level/t14-bwr.csv | 22 + benchmark_low_level/t14-bww.csv | 22 + benchmark_low_level/t14-lrnd.csv | 41 + benchmark_low_level/t14-lseq.csv | 41 + benchmark_python/README.md | 29 + benchmark_python/bench.py | 68 + benchmark_python/bench_plot.py | 106 + benchmark_python/loading-slowdown-ns128.svg | 2360 +++++++++++++++ benchmark_python/loading-timings-ns128.svg | 2348 +++++++++++++++ benchmark_python/results_ns128 | 21 + exercise-my-solution.ipynb | 241 ++ numpy/README.md | 31 + numpy/ndarray-memory-layout-1d.svg | 1 + .../ndarray-memory-layout-2d-rectangular.svg | 1 + numpy/ndarray-memory-layout-2d-square.svg | 1 + numpy/python-list-memory-layout.svg | 1 + parallel/README.md | 24 + setup/generate_materials.py | 37 + setup/materials.pdf | Bin 0 -> 215911 bytes setup/template.svg | 105 + 43 files changed, 20448 insertions(+) create mode 100644 README.md create mode 100644 architecture/GPUvsCPU-architecture.png create mode 100644 architecture/NAND-gate.svg create mode 100644 architecture/README.md create mode 100644 architecture/comp_architecture_schematics.svg create mode 100644 architecture/cpu_clock_rate.csv create mode 100644 architecture/cpu_clock_rate.py create mode 100644 architecture/cpu_clock_rate.svg create mode 100644 architecture/memory.csv create mode 100644 architecture/memory.py create mode 100644 architecture/memory_bandwidth.svg create mode 100644 architecture/memory_clock.svg create mode 100644 architecture/memory_latency.svg create mode 100644 architecture/storage.csv create mode 100644 architecture/storage.py create mode 100644 architecture/storage.svg create mode 100644 architecture/topology.png create mode 100644 benchmark_low_level/README.md create mode 100644 benchmark_low_level/bandwidth-t14.svg create mode 100644 benchmark_low_level/latency-t14.svg create mode 100644 benchmark_low_level/parse_results.py create mode 100644 benchmark_low_level/plot.py create mode 100644 benchmark_low_level/results_t14 create mode 100644 benchmark_low_level/t14-bwr.csv create mode 100644 benchmark_low_level/t14-bww.csv create mode 100644 benchmark_low_level/t14-lrnd.csv create mode 100644 benchmark_low_level/t14-lseq.csv create mode 100644 benchmark_python/README.md create mode 100755 benchmark_python/bench.py create mode 100755 benchmark_python/bench_plot.py create mode 100644 benchmark_python/loading-slowdown-ns128.svg create mode 100644 benchmark_python/loading-timings-ns128.svg create mode 100644 benchmark_python/results_ns128 create mode 100644 exercise-my-solution.ipynb create mode 100644 numpy/README.md create mode 100644 numpy/ndarray-memory-layout-1d.svg create mode 100644 numpy/ndarray-memory-layout-2d-rectangular.svg create mode 100644 numpy/ndarray-memory-layout-2d-square.svg create mode 100644 numpy/python-list-memory-layout.svg create mode 100644 parallel/README.md create mode 100644 setup/generate_materials.py create mode 100644 setup/materials.pdf create mode 100644 setup/template.svg diff --git a/README.md b/README.md new file mode 100644 index 0000000..cc9bced --- /dev/null +++ b/README.md @@ -0,0 +1,93 @@ +# What every scientist should know about computer architecture + +## Introduction + - [Puzzle](puzzle.ipynb) + - Question: how come that swapping dimensions in a for-loop makes out for a huge slowdown? + - Let students play around with the notebook and try to find the "bug" + - A more thorough [benchmark](benchmark_python/) + + +## A digression in CPU architecture and the memory hierarchy + + - Go to [A Primer in CPU architecture](architecture/) + - Measure size and timings for the memory hierarchy on my machine with a low level [C benchmark](benchmark_low_level/) + +## Analog programming + + - [Two exercises to activate the body and the mind](analog_programming.md) + + +## Back to the Python benchmark (second try) + + - can we explain what is happening? + - it must have to do with the good (or bad) use of cache properties + - but how are numpy arrays laid out in memory? + +## Anatomy of a numpy array + + - [memory layout of numpy arrays](numpy/) + +## Back to the Python benchmark (third try) + - can we explain what is happening now? Yes, more or less ;-) + - quick fix for the [puzzle](puzzle.ipynb): try and add `order='F'` in the "bad" snippet and see that it "fixes" the bug ➔ why? + - the default memeory layout is called "C-contiguous" or "row-major": + ```python + np.zeros((2,2)).flags.c_contiguous == True + np.zeros((2,2)).flags.f_contiguous == False + ``` + - note that for one-dimensional arrays it makes no difference: + ```python + np.zeros(2).flags.c_contiguous == True + np.zeros(2).flags.f_contiguous == True + ``` + - rule of thumb for multi-dimensional numpy arrays: + - the right-most index should be the inner-most loop in a series of nested loops over the dimensions of a multi-dimensional array + - the previous rule can be remembered as *the right-most index changes the faster* in a series of nested loops + - the logically contiguous data, for example the data points of a single time series, should be stored along the right-most dimension: + ```python + x = np.zeros((n_series, lenght_of_one_series)) # ➔ good! + y = np.zeros((length_of_one_series, n_series)) # ➔ bad! + ``` + - … unless of course you plan to mostly loop *across* time series :) + - watch out when migrating code from MATLAB® : it stores data in memory using the opposite convention, the column-major order! + - **DANGER**: watch out when working with [`pandas.DataFrame`](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html): + + ➔ the data are stored in memory using different conventions depending on how the `DataFrame` was initialized! Be sure to + check the `DataFrame.values.flags` attribute! + +## A final exercise to put it all together + - fork this repo to your account and clone your fork on the laptop + - create a branch `ex` and switch to it + - work on the [exercise](exercise.ipynb) + - push your solution to your fork and create a Pull Request to this repo + + +## Notes on the benchmarks + + - while running the benchmarks attached to one core on my laptop, the core was running under a constant load of 100% (almost completely user-time) and at a fixed frequency of 3.8 GHz, where the theoretical max would be 5.2 GHz + + ➔ the CPU does not "starve" because it scales its speed down to match the memory throughput? Or I am misinterpreting this? This problem which at first sight should be perfectly memory-bound, becomes CPU-bound, or actually, exactly balanced? From the [Intel documentation](https://lenovopress.lenovo.com/lp1836-tuning-uefi-settings-4th-gen-intel-xeon-scalable-processor): + > **Energy Efficient Turbo** + > + > When `Energy Efficient Turbo` is enabled, the CPU’s optimal turbo + > frequency will be tuned dynamically based on CPU utilization. The actual + > turbo frequency the CPU is set to is proportionally adjusted based on the + > duration of the turbo request. Memory usage of the OS is also monitored. + > If the OS is using memory heavily and the CPU core performance is limited + > by the available memory resources, the turbo frequency will be reduced + > until more memory load dissipates, and more memory resources become + > available. The power/performance bias setting also influences energy + > efficient turbo. `Energy Efficient Turbo` is best used when attempting to + > maximize power consumption over performance. + +## Concluding remarks + - how is all of this relevant for the users of a computing cluster? + - Never trust benchmarks! See for example [Producing Wrong Data Without Doing Anything Obviously Wrong!](https://users.cs.northwestern.edu/~robby/courses/322-2013-spring/mytkowicz-wrong-data.pdf) + +## Additional material if there's time left +- [Excerpts of parallel Python](parallel) +- how does memory *allocation* to processes work at the OS level? + - virtual memory + - swap + - optimistic over-committing allocation policies + - the oom-killer watchdog diff --git a/architecture/GPUvsCPU-architecture.png b/architecture/GPUvsCPU-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..1370d89903e3e4a8a1697b24722b095bd59fe3c6 GIT binary patch literal 93850 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%0DUE|?|-fqp&ke>!GS3=h?v=fAo) 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 O6dtKQERi+&^Zx*ysqmlx literal 0 HcmV?d00001 diff --git a/architecture/NAND-gate.svg b/architecture/NAND-gate.svg new file mode 100644 index 0000000..64f3987 --- /dev/null +++ b/architecture/NAND-gate.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Vcc + GND + R1 + R2 + VT1 + VT2 + A + B + Q + + diff --git a/architecture/README.md b/architecture/README.md new file mode 100644 index 0000000..c9811a4 --- /dev/null +++ b/architecture/README.md @@ -0,0 +1,121 @@ +# A Primer on computer architecture + +## Binary representation of common data types +- **integers** + - int32 ➔ 32b (bits) = 4B (bytes) + - 1 bit for sign, 31 bit for magnitude + - min = -2^31 = -2,147,483,648 + - max = 2^31-1 = 2,147,483,647 + - [visualization](https://manderc.com/apps/umrechner/index_eng.php) + - In Python: + - `bin(14)` ➔ `'0b1110'` + - `np.iinfo(np.int32)` ➔ `iinfo(min=-2147483648, max=2147483647, dtype=int32)` + - Python integers, as opposed to numpy integer types, are represented with a flexible number of bits: `sys.int_info` ➔ `bits_per_digit=30, sizeof_digit=4, default_max_str_digits=4300, str_digits_check_threshold=640` + - they are called "long" or "superlong" integers, because they can have arbitrary size. Low level implementation explained: + - [Arpit Bhayani's blog](https://arpitbhayani.me/blogs/long-integers-python/) + - [Artem Golubin's blog](https://rushter.com/blog/python-integer-implementation/) + +- **real numbers**, a.k.a. floating point numbers (IEEE-754 standard): + - float64 ➔ 64b (bits) = 8B (bytes) + - 1 bit for sign, 51 bits for mantissa, 11 bits for exponent + - min, max ≈ ± 1.8 × 10^308 + - smallest ≈ 2.2 x 10^-308 + - example in Python: + - `np.finfo(np.float64)` ➔ `finfo(resolution=1e-15, min=-1.7976931348623157e+308, max=1.7976931348623157e+308, dtype=float64)` + - `sys.float_info` ➔ `max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1` + - next floating point number after `1.` in the direction of `2.`: `np.nextafter(1., 2.)` ➔ `1.0000000000000002` + - watch out for equality between floating point numbers: + - `1.1 + 2.2 == 3.3` ➔ `False` + - `(1.1+2.2).hex()` ➔ `0x1.a666666666667p+1` and `(3.3).hex()` ➔ `0x1.a666666666666p+1` + - visualization: + - [`float32`](https://www.h-schmidt.net/FloatConverter/IEEE754.html) + - [all types](https://float.exposed/) with [explanation](https://ciechanow.ski/exposing-floating-point/) + - Docs with more details: [What Every Programmer Should Know About Floating-Point Arithmetic or Why don’t my numbers add up?](https://floating-point-gui.de) + - Docs with the gory details, a.k.a. the floating point bible: [What every computer scientist should know about floating-point arithmetic](https://doi.org/10.1145/103162.103163) + +- **strings**: + - UTF8 encoded, flexible width from 1B (byte) to 4B (bytes): 1,112,064 Unicode characters (code points) + - ASCII: 7 bits (fits in one byte), 127 characters ➔ [ASCII table](https://upload.wikimedia.org/wikipedia/commons/2/26/ASCII_Table_%28suitable_for_printing%29.svg) + - [visualization](https://sonarsource.github.io/utf8-visualizer/) + - actually in Python strings (more precisely: unicode objects) are stored in different formats depending on which characters are stored for memory efficiency. Look at the gory details [here](https://docs.python.org/3.14/c-api/unicode.html) ➔ not for the faint-hearted! + +- **hexadecimal notation**: + - base16 ➔ '0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f' + - a compact way of representating binary data: 8 bits = 1 byte = 2 hexadecimal digits + - Example: `254` (decimal) ➔ `1111 1110` (binary) ➔ `fe` (hex) + +## CPU architecture +![CPU schematics](comp_architecture_schematics.svg) + - Primer on CPU (x86_64) architecture and the memory hierarchy: + - CPU registers ≈ 160 (plus another ~500 model specific), latency: 0 cycles, capacity: 8 bytes + - x86-64 instruction set, with ≈ 2000 instructions with mnemonic (plus an unknown number of "undocumented" instructions ~ 10k) + - (single instruction, mutiple data [8 or 16 data units]) SIMD CPUs + - L-Caches: L1/L2/L3, with cache lines of 128B, latencies: 1-40 cycles, capacity: ~KB and ~MB + - Main memory: RAM pages 4KB or 64KB, latency: 50~100 cycles, capacity ~GBs + - Storage (local disks): disk transfer blocks 4KB to 64MB, latency: 0.1ms (300k cycles), capacity: ~TBs + - Remote Storage (network): typically limited by ethernet connection (1-10 GB/s), latency: 10~100 ms, capacity: ∞ + - Understand the trade-offs involved: + - **capacity** measured in T/G/M/K/B + - **latency** ≈ (time-when-data-available-on-output-pins – time-when-data-requested) ➔ measured in nanoseconds or in (CPU) cycles + - **bandwidth** ≈ clock frequency × data-transfer/tick × bus-width (in bytes) ➔ measured in T/G/M/K/B per second (this is what is usually advertised as the **speed**) + - data **volatility** vs. **persistence** + - cost + - physical limits (heat dissipation, density, size, lifetime) + - temporal and spacial locality of data + - The gory details about the memory hierarchy: [What Every Programmer Should Know About Memory](https://www.akkadia.org/drepper/cpumemory.pdf) by the notorious Ulrich Drepper + +# …and what about the GPU? +![GPU vs CPU architecture](GPUvsCPU-architecture.png) + - A GPU has many (in the order of hundreds) SIMT (single instruction, multiple thread) cores, so called SMs (Streaming Multiprocessors), each one with local L1 and shared L2 caches, and shared RAM (due to to the high parallelism, with huge bandwidth, in the order of ~1TB/s) + - The SMs are specialized on data types. In order of abundance, the following data types are supported: int8, int32, int64, float16, float32, float64 + - Performance depends on: + - memory bandwidth: usually higher than CPU's RAM + - "math" bandwidth: usually higher than CPU's, but much more limited in capability; for example branches (if/else) are expensive + - latency: usually much higher than CPU's ➔ the more parallel threads are run the less the price of high latency is paid (latency "hiding") + - spatial locality is extremely critical + - A portion of the GPU-RAM is accessible to the CPU ➔ the GPU performs the copies + - The PCI-Bus (Peripheral Component Interconnect bus) is the bottleneck: data needs to flow from main (CPU) memory to GPU memory and back! + - Problems on a cluster: the GPU does not really support simultanous multiple users payloads! + +# Computer Architecture (a concrete example) +My Laptop: +![Graphical representation](topology.png) + - Lenovo - T14 Gen 4 + - CPU i7-1365U: + - 2× "performance cores" (Intel Core) max 5.20 GHz (0.19 ns/cycle) with Hyper-Threading + - 8× "efficient cores" (Intel Atom) max 3.90 GHz (0.26 ns/cycle) + - L1 (data) cache P-Core 48 KB + - L1 (data) cache E-Core 32 KB + - L2 cache P-Core 1280 KB + - L2 cache E-Core 2048 KB (shared x4) + - L3 cache 12 MB (shared P+E-Cores) + - RAM DDR5-5200: 32GB (16GB soldered + 16GB bank): + - Data rate 5200 MT/s, Transfer time 0.192 ns/cycle + - Command rate (bus clock) 2600 MHz, Cycle time 0.385 ns + - Internal clock 650 MHz, 1.54 ns + - CAS Latency 34 cycles, Total latency = CAS latency x cycle = 13.09 ns, Throughput 40.6 GB/s + - DMI (Direct Media Interface): 8×16 GT/s (≈128 GB/s) + - PCI (Peripheral Component Interconnect) Express bridges: + - Graphics: 16 GT/s (≈ 8 GB/s) + - 2× Thunderbolt: 2.5 GT/s (≈ 1 GB/s) and 16 GT/s (≈ 8 GB/s) + - GPU Intel Iris, Internal clock 300 Mhz-1.30 GHz, memory 4 GB/2.1 GHz with a bandwidth of 68 GB/s + +## Historical evolution of speed of different components in a computer +(data source: Wikipedia) + +### CPU Clock Rate +![](cpu_clock_rate.svg) + +### Memory (RAM) Clock Cycle Time +![](memory_clock.svg) + +### Memory (RAM) Bandwidth +![](memory_bandwidth.svg) + +### Memory (RAM) Latency +![](memory_latency.svg) + +### Storage Read Speed +![](storage.svg) + + diff --git a/architecture/comp_architecture_schematics.svg b/architecture/comp_architecture_schematics.svg new file mode 100644 index 0000000..a6ba132 --- /dev/null +++ b/architecture/comp_architecture_schematics.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/architecture/cpu_clock_rate.csv b/architecture/cpu_clock_rate.csv new file mode 100644 index 0000000..399939c --- /dev/null +++ b/architecture/cpu_clock_rate.csv @@ -0,0 +1,201 @@ +1969,1 MHz +1971,740 kHz +1972,200 kHz +1972,400 kHz +1972,500 kHz +1973,1 MHz +1973,2 MHz +1973,715 kHz +1974,1.33 MHz +1974,1.4 MHz +1974,1 MHz +1974,2 MHz +1974,400 kHz +1974,500 kHz +1974,715 kHz +1974,740 kHz +1975,1.2 MHz +1975,10 MHz +1975,1 MHz +1975,256 kHz +1975,2 MHz +1975,3.3 MHz +1975,4 MHz +1976,2.5 MHz +1976,3.3 MHz +1976,6.4 MHz +1976,8 MHz +1977,1.0 MHz +1977,2.0 MHz +1977,3.0 MHz +1978,1 MHz +1978,5 MHz +1979,5 MHz +1979,8 MHz +1981,10 MHz +1981,2.5 MHz +1982,18 MHz +1982,1 MHz +1982,6 MHz +1982,8 MHz +1983,2 MHz +1983,3 MHz +1984,16 MHz +1984,5 MHz +1985,12 MHz +1985,5 MHz +1985,8 MHz +1986,15 MHz +1986,16 MHz +1987,10 MHz +1987,12.5 MHz +1987,16 MHz +1987,20 MHz +1987,8 MHz +1988,10 MHz +1988,12 MHz +1988,25 MHz +1989,16-33 MHz +1989,25 MHz +1989,35 MHz +1990,20-30 MHz +1990,40 MHz +1991,100 MHz +1991,33 MHz +1991,62.5-90.91 MHz +1992,100 MHz +1992,100-200 MHz +1992,20 MHz +1992,40 MHz +1992,40-50 MHz +1993,120 MHz +1993,50-80 MHz +1993,55-71.5 MHz +1993,60-66 MHz +1994,100 MHz +1994,100-125 MHz +1994,100-180 MHz +1994,125 MHz +1994,200-300 MHz +1994,50 MHz +1994,60-120 MHz +1994,60-125 MHz +1995,101-118 MHz +1995,143-167 MHz +1995,150-200 MHz +1995,266-333 MHz +1996,141-161 MHz +1996,150 MHz +1996,150-250 MHz +1996,160-180 MHz +1996,180-250 MHz +1996,400-500 MHz +1996,75-100 MHz +1997,120-150 MHz +1997,125 MHz +1997,166-233 MHz +1997,200 MHz +1997,233-300 MHz +1997,233-366 MHz +1997,250-400 MHz +1997,370 MHz +1998,200 MHz +1998,250-300 MHz +1998,250-330 MHz +1998,262 MHz +1998,270-400 MHz +1998,300-440 MHz +1998,450-600 MHz +1998,500 MHz +1999,294-300 MHz +1999,350-500 MHz +1999,450 MHz +1999,450-600 MHz +1999,500-1000 MHz +1999,550-637 MHz +2000,1.33-1.73 GHz +2000,1.3-2 GHz +2000,450-810 MHz +2000,550 MHz-1.3 GHz +2000,600-750 MHz +2000,918 MHz +2001,1.1-1.4 GHz +2001,500-600 MHz +2001,733-800 MHz +2001,750-1200 MHz +2002,0.9-1 GHz +2002,1.1-1.35 GHz +2003,0.9-1.7 GHz +2003,1.4-2.4 GHz +2003,1.6-2.0 GHz +2004,1.65-1.9 GHz +2004,700 MHz +2005,1.05-1.35 GHz +2005,1.2-2.5 GHz +2005,1.6-3.0 GHz +2005,1-1.4 GHz +2005,2.8-3.2 GHz +2005,2-2.4 GHz +2005,3.2 GHz +2006,1.06-2.67 GHz +2006,1.1-2.33 GHz +2006,1.4-1.6 GHz +2006,3.2-4.6 GHz +2007,1.8-3.2 GHz +2007,1-1.4 GHz +2007,2.15-2.4 GHz +2007,3.5-4.7 GHz +2007,600-900 MHz +2007,850 MHz +2008,0.8-1.6 GHz +2008,1.8-2.6 GHz +2008,2.3-2.9 GHz +2008,2.4-2.88 GHz +2008,2.66-3.2 GHz +2008,2.8-4.0 GHz +2008,4.4 GHz +2008,600-866 MHz +2009,2.2-2.8 GHz +2009,2.5-3.2 GHz +2010,1.6 GHz +2010,1.73-2.66 GHz +2010,1.7-2.4 GHz +2010,1.86-3.33 GHz +2010,2.66-3.0 GHz +2010,2 GHz +2010,3.8-5.2 GHz +2010,3-4.14 GHz +2011,1.0-1.6 GHz +2011,1.6 GHz +2011,1.6-3.4 GHz +2011,1.73-2.67 GHz +2011,2.0 GHz +2011,2.8-3 GHz +2011,3.1-3.6 GHz +2012,1.73-2.53 GHz +2012,1.848 GHz +2012,3.1-5.3 GHz +2012,5.5 GHz +2013,1.9-4.4 GHz +2013,2.8-3 GHz +2013,3.6 GHz +2014,1.8-4 GHz +2014,2.5-5 GHz +2015,3.6 GHz +2015,5 GHz +2016,320 MHz +2017,1.5 GHz +2017,3.2-4.1 GHz +2017,4 GHz +2017,5.2 GHz +2017,5 GHz +2018,1.5 GHz +2018,2.2-3.2 GHz +2018,2.8-3.7 GHz +2019,2-4.7 GHz +2019,5.2 GHz +2020,3.2 GHz +2020,3.4-4.9 GHz +2021,3.2 GHz +2022,3.2 GHz +2022,5 GHz diff --git a/architecture/cpu_clock_rate.py b/architecture/cpu_clock_rate.py new file mode 100644 index 0000000..8c0504a --- /dev/null +++ b/architecture/cpu_clock_rate.py @@ -0,0 +1,83 @@ +# CPU clock rate data from Wikipedia +# https://en.wikipedia.org/wiki/Microprocessor_chronology +# Table data extracted with: https://wikitable2csv.ggor.de/ +import numpy as np +import matplotlib +from matplotlib import pyplot as plt +plt.style.use('ggplot') +matplotlib.rcParams['font.size'] = 12 +matplotlib.rcParams['font.family'] = ['Exo 2', 'sans-serif'] + +data = open('cpu_clock_rate.csv', 'rt') + +# first, remove units and rescale everything to MHz +rescaled = [] +for line in data: + date, raw = line.split(',') + try: + value, unit = raw.split() + except ValueError: + # there are lines with multiple units, for example + # 550 MHz-1.3 GHz + # take the left most one + raw = raw.split('-')[1] + value, unit = raw.split() + # if value is in the form X-Y, just use the biggest, i.e. Y + if '-' in value: + value = value.split('-')[1] + value = float(value) + # rescale value + if unit == 'kHz': + value = value/1000 + elif unit == 'GHz': + value = value*1000 + elif unit == 'MHz': + pass + else: + raise ValueError(f'Unit not understood! {unit}') + rescaled.append((date, value)) + +dtype = [('year', np.float64), ('clock', np.float64)] +rescaled = np.array(rescaled, dtype=dtype) +# sort first by year and then by value +rescaled.sort(order=['year', 'clock']) + +# add some jitter on values corresponding to the same year, so that the plot +# looks more understandable +old_year = rescaled[0][0] +count = 0 +for row in range(rescaled.shape[0]): + year = rescaled[row][0] + count += 1 + if year != old_year: + # add jitter to the values corresponding to the previous year + prev_count = count-1 + if prev_count > 1: + jitter = 1/prev_count + for i in range(1, count): + loc_year, loc_value = rescaled[row-count+i] + rescaled[row-count+i] = (loc_year+(jitter*(i-1)), loc_value) + # restart counting + count = 1 + old_year = year + +# plot the thing +plt.figure(figsize=(8.5,7.5)) +plt.semilogy(rescaled['year'], rescaled['clock'], 'o') +# my laptop here +plt.semilogy([2020], [4900], 'o') +plt.grid(None) +plt.grid(which='both', axis='both') +plt.ylim(0.1, 10000) +plt.xlim(1968, 2025) +years = np.arange(1970, 2025, 5) +plt.xticks(years, years) +plt.yticks([0.1, 1,10,100,1000, 10000], ['1 kHz\n1 ms', '1 MHz\n1 µs', '10 MHz\n100 ns', + '100 MHz\n10 ns', '1 GHz\n1 ns', '10 GHz\n0.1 ns']) +plt.tick_params(labelright=True, top=True, right=True) +plt.title('CPU clock rate') +plt.savefig('cpu_clock_rate.svg') + + + + diff --git a/architecture/cpu_clock_rate.svg b/architecture/cpu_clock_rate.svg new file mode 100644 index 0000000..f793c65 --- /dev/null +++ b/architecture/cpu_clock_rate.svg @@ -0,0 +1,2047 @@ + + + + + + + + 2024-03-09T19:48:36.950426 + image/svg+xml + + + Matplotlib v3.6.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/architecture/memory.csv b/architecture/memory.csv new file mode 100644 index 0000000..a380049 --- /dev/null +++ b/architecture/memory.csv @@ -0,0 +1,148 @@ +Generation,Type,Data rate (MT/s),Transfer time (ns),Command rate (MHz),Cycle time (ns),CAS latency,First word (ns),Fourth word (ns),Eighth word (ns) +SDRAM,PC100,100,10.000,100,10.000,2,20.00,50.00,90.00 +SDRAM,PC133,133,7.500,133,7.500,3,22.50,45.00,75.00 +DDR SDRAM,DDR-333,333,3.000,166,6.000,2.5,15.00,24.00,36.00 +DDR SDRAM,DDR-400,400,2.500,200,5.000,3,15.00,22.50,32.50 +DDR SDRAM,DDR-400,400,2.500,200,5.000,2.5,12.50,20.00,30.00 +DDR SDRAM,DDR-400,400,2.500,200,5.000,2,10.00,17.50,27.50 +DDR2 SDRAM,DDR2-400,400,2.500,200,5.000,4,20.00,27.50,37.50 +DDR2 SDRAM,DDR2-400,400,2.500,200,5.000,3,15.00,22.50,32.50 +DDR2 SDRAM,DDR2-533,533,1.875,266,3.750,4,15.00,20.63,28.13 +DDR2 SDRAM,DDR2-533,533,1.875,266,3.750,3,11.25,16.88,24.38 +DDR2 SDRAM,DDR2-667,667,1.500,333,3.000,5,15.00,19.50,25.50 +DDR2 SDRAM,DDR2-667,667,1.500,333,3.000,4,12.00,16.50,22.50 +DDR2 SDRAM,DDR2-800,800,1.250,400,2.500,6,15.00,18.75,23.75 +DDR2 SDRAM,DDR2-800,800,1.250,400,2.500,5,12.50,16.25,21.25 +DDR2 SDRAM,DDR2-800,800,1.250,400,2.500,4.5,11.25,15.00,20.00 +DDR2 SDRAM,DDR2-800,800,1.250,400,2.500,4,10.00,13.75,18.75 +DDR2 SDRAM,DDR2-1066,1066,0.938,533,1.875,7,13.13,15.94,19.69 +DDR2 SDRAM,DDR2-1066,1066,0.938,533,1.875,6,11.25,14.06,17.81 +DDR2 SDRAM,DDR2-1066,1066,0.938,533,1.875,5,9.38,12.19,15.94 +DDR2 SDRAM,DDR2-1066,1066,0.938,533,1.875,4.5,8.44,11.25,15.00 +DDR2 SDRAM,DDR2-1066,1066,0.938,533,1.875,4,7.50,10.31,14.06 +DDR3 SDRAM,DDR3-1066,1066,0.938,533,1.875,7,13.13,15.94,19.69 +DDR3 SDRAM,DDR3-1333,1333,0.750,666,1.500,9,13.50,15.75,18.75 +DDR3 SDRAM,DDR3-1333,1333,0.750,666,1.500,7,10.50,12.75,15.75 +DDR3 SDRAM,DDR3-1333,1333,0.750,666,1.500,6,9.00,11.25,14.25 +DDR3 SDRAM,DDR3-1375,1375,0.727,687,1.455,5,7.27,9.45,12.36 +DDR3 SDRAM,DDR3-1600,1600,0.625,800,1.250,11,13.75,15.63,18.13 +DDR3 SDRAM,DDR3-1600,1600,0.625,800,1.250,10,12.50,14.38,16.88 +DDR3 SDRAM,DDR3-1600,1600,0.625,800,1.250,9,11.25,13.13,15.63 +DDR3 SDRAM,DDR3-1600,1600,0.625,800,1.250,8,10.00,11.88,14.38 +DDR3 SDRAM,DDR3-1600,1600,0.625,800,1.250,7,8.75,10.63,13.13 +DDR3 SDRAM,DDR3-1600,1600,0.625,800,1.250,6,7.50,9.38,11.88 +DDR3 SDRAM,DDR3-1866,1866,0.536,933,1.071,10,10.71,12.32,14.46 +DDR3 SDRAM,DDR3-1866,1866,0.536,933,1.071,9,9.64,11.25,13.39 +DDR3 SDRAM,DDR3-1866,1866,0.536,933,1.071,8,8.57,10.18,12.32 +DDR3 SDRAM,DDR3-2000,2000,0.500,1000,1.000,9,9.00,10.50,12.50 +DDR3 SDRAM,DDR3-2133,2133,0.469,1066,0.938,12,11.25,12.66,14.53 +DDR3 SDRAM,DDR3-2133,2133,0.469,1066,0.938,11,10.31,11.72,13.59 +DDR3 SDRAM,DDR3-2133,2133,0.469,1066,0.938,10,9.38,10.78,12.66 +DDR3 SDRAM,DDR3-2133,2133,0.469,1066,0.938,9,8.44,9.84,11.72 +DDR3 SDRAM,DDR3-2133,2133,0.469,1066,0.938,8,7.50,8.91,10.78 +DDR3 SDRAM,DDR3-2133,2133,0.469,1066,0.938,7,6.56,7.97,9.84 +DDR3 SDRAM,DDR3-2200,2200,0.455,1100,0.909,7,6.36,7.73,9.55 +DDR3 SDRAM,DDR3-2400,2400,0.417,1200,0.833,13,10.83,12.08,13.75 +DDR3 SDRAM,DDR3-2400,2400,0.417,1200,0.833,12,10.00,11.25,12.92 +DDR3 SDRAM,DDR3-2400,2400,0.417,1200,0.833,11,9.17,10.42,12.08 +DDR3 SDRAM,DDR3-2400,2400,0.417,1200,0.833,10,8.33,9.58,11.25 +DDR3 SDRAM,DDR3-2400,2400,0.417,1200,0.833,9,7.50,8.75,10.42 +DDR3 SDRAM,DDR3-2600,2600,0.385,1300,0.769,11,8.46,9.62,11.15 +DDR3 SDRAM,DDR3-2666,2666,0.375,1333,0.750,15,11.25,12.38,13.88 +DDR3 SDRAM,DDR3-2666,2666,0.375,1333,0.750,13,9.75,10.88,12.38 +DDR3 SDRAM,DDR3-2666,2666,0.375,1333,0.750,12,9.00,10.13,11.63 +DDR3 SDRAM,DDR3-2666,2666,0.375,1333,0.750,11,8.25,9.38,10.88 +DDR3 SDRAM,DDR3-2800,2800,0.357,1400,0.714,16,11.43,12.50,13.93 +DDR3 SDRAM,DDR3-2800,2800,0.357,1400,0.714,12,8.57,9.64,11.07 +DDR3 SDRAM,DDR3-2800,2800,0.357,1400,0.714,11,7.86,8.93,10.36 +DDR3 SDRAM,DDR3-2933,2933,0.341,1466,0.682,12,8.18,9.20,10.57 +DDR3 SDRAM,DDR3-3000,3000,0.333,1500,0.667,12,8.00,9.00,10.33 +DDR3 SDRAM,DDR3-3100,3100,0.323,1550,0.645,12,7.74,8.71,10.00 +DDR3 SDRAM,DDR3-3200,3200,0.313,1600,0.625,16,10.00,10.94,12.19 +DDR3 SDRAM,DDR3-3300,3300,0.303,1650,0.606,16,9.70,10.61,11.82 +DDR4 SDRAM,DDR4-1600,1600,0.625,800,1.250,12,15.00,16.88,19.38 +DDR4 SDRAM,DDR4-1600,1600,0.625,800,1.250,11,13.75,15.63,18.13 +DDR4 SDRAM,DDR4-1600,1600,0.625,800,1.250,10,12.50,14.38,16.88 +DDR4 SDRAM,DDR4-1866,1866,0.536,933,1.071,14,15.00,16.61,18.75 +DDR4 SDRAM,DDR4-1866,1866,0.536,933,1.071,13,13.93,15.54,17.68 +DDR4 SDRAM,DDR4-1866,1866,0.536,933,1.071,12,12.86,14.46,16.61 +DDR4 SDRAM,DDR4-2133,2133,0.469,1066,0.938,16,15.00,16.41,18.28 +DDR4 SDRAM,DDR4-2133,2133,0.469,1066,0.938,15,14.06,15.47,17.34 +DDR4 SDRAM,DDR4-2133,2133,0.469,1066,0.938,14,13.13,14.53,16.41 +DDR4 SDRAM,DDR4-2400,2400,0.417,1200,0.833,17,14.17,15.42,17.08 +DDR4 SDRAM,DDR4-2400,2400,0.417,1200,0.833,16,13.33,14.58,16.25 +DDR4 SDRAM,DDR4-2400,2400,0.417,1200,0.833,15,12.50,13.75,15.42 +DDR4 SDRAM,DDR4-2666,2666,0.375,1333,0.750,19,14.25,15.38,16.88 +DDR4 SDRAM,DDR4-2666,2666,0.375,1333,0.750,17,12.75,13.88,15.38 +DDR4 SDRAM,DDR4-2666,2666,0.375,1333,0.750,16,12.00,13.13,14.63 +DDR4 SDRAM,DDR4-2666,2666,0.375,1333,0.750,15,11.25,12.38,13.88 +DDR4 SDRAM,DDR4-2666,2666,0.375,1333,0.750,13,9.75,10.88,12.38 +DDR4 SDRAM,DDR4-2800,2800,0.357,1400,0.714,17,12.14,13.21,14.64 +DDR4 SDRAM,DDR4-2800,2800,0.357,1400,0.714,16,11.43,12.50,13.93 +DDR4 SDRAM,DDR4-2800,2800,0.357,1400,0.714,15,10.71,11.79,13.21 +DDR4 SDRAM,DDR4-2800,2800,0.357,1400,0.714,14,10.00,11.07,12.50 +DDR4 SDRAM,DDR4-3000,3000,0.333,1500,0.667,17,11.33,12.33,13.67 +DDR4 SDRAM,DDR4-3000,3000,0.333,1500,0.667,16,10.67,11.67,13.00 +DDR4 SDRAM,DDR4-3000,3000,0.333,1500,0.667,15,10.00,11.00,12.33 +DDR4 SDRAM,DDR4-3000,3000,0.333,1500,0.667,14,9.33,10.33,11.67 +DDR4 SDRAM,DDR4-3200,3200,0.313,1600,0.625,16,10.00,10.94,12.19 +DDR4 SDRAM,DDR4-3200,3200,0.313,1600,0.625,15,9.38,10.31,11.56 +DDR4 SDRAM,DDR4-3200,3200,0.313,1600,0.625,14,8.75,9.69,10.94 +DDR4 SDRAM,DDR4-3300,3300,0.303,1650,0.606,16,9.70,10.61,11.82 +DDR4 SDRAM,DDR4-3333,3333,0.300,1666,0.600,16,9.60,10.50,11.70 +DDR4 SDRAM,DDR4-3400,3400,0.294,1700,0.588,16,9.41,10.29,11.47 +DDR4 SDRAM,DDR4-3466,3466,0.288,1733,0.577,18,10.38,11.25,12.40 +DDR4 SDRAM,DDR4-3466,3466,0.288,1733,0.577,17,9.81,10.67,11.83 +DDR4 SDRAM,DDR4-3466,3466,0.288,1733,0.577,16,9.23,10.10,11.25 +DDR4 SDRAM,DDR4-3600,3600,0.278,1800,0.556,19,10.56,11.39,12.50 +DDR4 SDRAM,DDR4-3600,3600,0.278,1800,0.556,18,10.00,10.83,11.94 +DDR4 SDRAM,DDR4-3600,3600,0.278,1800,0.556,17,9.44,10.28,11.39 +DDR4 SDRAM,DDR4-3600,3600,0.278,1800,0.556,16,8.89,9.72,10.83 +DDR4 SDRAM,DDR4-3600,3600,0.278,1800,0.556,15,8.33,9.17,10.28 +DDR4 SDRAM,DDR4-3600,3600,0.278,1800,0.556,14,7.78,8.61,9.72 +DDR4 SDRAM,DDR4-3733,3733,0.268,1866,0.536,17,9.11,9.91,10.98 +DDR4 SDRAM,DDR4-3866,3866,0.259,1933,0.517,18,9.31,10.09,11.12 +DDR4 SDRAM,DDR4-4000,4000,0.250,2000,0.500,19,9.50,10.25,11.25 +DDR4 SDRAM,DDR4-4000,4000,0.250,2000,0.500,18,9.00,9.75,10.75 +DDR4 SDRAM,DDR4-4000,4000,0.250,2000,0.500,17,8.50,9.25,10.25 +DDR4 SDRAM,DDR4-4000,4000,0.250,2000,0.500,16,8.00,8.75,9.75 +DDR4 SDRAM,DDR4-4133,4133,0.242,2066,0.484,19,9.19,9.92,10.89 +DDR4 SDRAM,DDR4-4200,4200,0.238,2100,0.476,19,9.05,9.76,10.71 +DDR4 SDRAM,DDR4-4266,4266,0.234,2133,0.469,19,8.91,9.61,10.55 +DDR4 SDRAM,DDR4-4266,4266,0.234,2133,0.469,18,8.44,9.14,10.08 +DDR4 SDRAM,DDR4-4266,4266,0.234,2133,0.469,17,7.97,8.67,9.61 +DDR4 SDRAM,DDR4-4266,4266,0.234,2133,0.469,16,7.50,8.20,9.14 +DDR4 SDRAM,DDR4-4400,4400,0.227,2200,0.454,19,8.64,9.32,10.23 +DDR4 SDRAM,DDR4-4400,4400,0.227,2200,0.454,18,8.18,8.86,9.77 +DDR4 SDRAM,DDR4-4400,4400,0.227,2200,0.454,17,7.73,8.41,9.32 +DDR4 SDRAM,DDR4-4600,4600,0.217,2300,0.435,19,8.26,8.91,9.78 +DDR4 SDRAM,DDR4-4600,4600,0.217,2300,0.435,18,7.82,8.48,9.35 +DDR4 SDRAM,DDR4-4800,4800,0.208,2400,0.417,20,8.33,8.96,9.79 +DDR4 SDRAM,DDR4-4800,4800,0.208,2400,0.417,19,7.92,8.54,9.38 +DDR5 SDRAM,DDR5-4800,4800,0.208,2400,0.417,40,16.67,17.29,18.13 +DDR5 SDRAM,DDR5-4800,4800,0.208,2400,0.417,38,15.83,16.46,17.29 +DDR5 SDRAM,DDR5-4800,4800,0.208,2400,0.417,36,15.00,15.63,16.46 +DDR5 SDRAM,DDR5-4800,4800,0.208,2400,0.417,34,14.17,14.79,15.63 +DDR5 SDRAM,DDR5-5200,5200,0.192,2600,0.385,40,15.38,15.96,16.73 +DDR5 SDRAM,DDR5-5200,5200,0.192,2600,0.385,38,14.62,15.19,15.96 +DDR5 SDRAM,DDR5-5200,5200,0.192,2600,0.385,36,13.85,14.42,15.19 +DDR5 SDRAM,DDR5-5200,5200,0.192,2600,0.385,34,13.08,13.65,14.42 +DDR5 SDRAM,DDR5-5600,5600,0.179,2800,0.357,40,14.29,14.82,15.54 +DDR5 SDRAM,DDR5-5600,5600,0.179,2800,0.357,38,13.57,14.11,14.82 +DDR5 SDRAM,DDR5-5600,5600,0.179,2800,0.357,36,12.86,13.39,14.11 +DDR5 SDRAM,DDR5-5600,5600,0.179,2800,0.357,34,12.14,12.68,13.39 +DDR5 SDRAM,DDR5-5600,5600,0.179,2800,0.357,30,10.71,11.25,11.96 +DDR5 SDRAM,DDR5-6000,6000,0.167,3000,0.333,40,13.33,13.83,14.50 +DDR5 SDRAM,DDR5-6000,6000,0.167,3000,0.333,38,12.67,13.17,13.83 +DDR5 SDRAM,DDR5-6000,6000,0.167,3000,0.333,36,12.00,12.50,13.17 +DDR5 SDRAM,DDR5-6000,6000,0.167,3000,0.333,32,10.67,11.17,11.83 +DDR5 SDRAM,DDR5-6000,6000,0.167,3000,0.333,30,10.00,10.50,11.17 +DDR5 SDRAM,DDR5-6200,6200,0.161,3100,0.323,40,12.90,13.39,14.03 +DDR5 SDRAM,DDR5-6200,6200,0.161,3100,0.323,38,12.26,12.74,13.39 +DDR5 SDRAM,DDR5-6200,6200,0.161,3100,0.323,36,11.61,12.10,12.74 +DDR5 SDRAM,DDR5-6400,6400,0.156,3200,0.313,40,12.50,12.97,13.59 +DDR5 SDRAM,DDR5-6400,6400,0.156,3200,0.313,38,11.88,12.34,12.97 +DDR5 SDRAM,DDR5-6400,6400,0.156,3200,0.313,36,11.25,11.72,12.34 +DDR5 SDRAM,DDR5-6400,6400,0.156,3200,0.313,34,10.63,11.09,11.72 +DDR5 SDRAM,DDR5-6400,6400,0.156,3200,0.313,32,10.00,10.47,11.09 +DDR5 SDRAM,DDR5-6600,6600,0.152,3300,0.303,34,10.30,10.76,11.36 diff --git a/architecture/memory.py b/architecture/memory.py new file mode 100644 index 0000000..5dc36cc --- /dev/null +++ b/architecture/memory.py @@ -0,0 +1,101 @@ +# RAM clock rate and transfer rate data from Wikipedia +# https://en.wikipedia.org/wiki/DDR_SDRAM +# Table data extracted with: https://wikitable2csv.ggor.de/ +import numpy as np +import pandas +import matplotlib +from matplotlib import pyplot as plt +plt.style.use('ggplot') +matplotlib.rcParams['font.size'] = 12 +matplotlib.rcParams['font.family'] = ['Exo 2', 'sans-serif'] + + +data = pandas.read_csv('memory.csv') +#data = data.sort_values('Memory clock (MHz)') +_types = list(data['Type']) +_transfers = list(data['Data rate (MT/s)']) +_cycle_times = list(data['Cycle time (ns)']) +_latencies = list(data['Eighth word (ns)']) + +# remove redundant data +types = [] +transfers = [] +cycle_times = [] +latencies = [] +for idx, typ in enumerate(_types): + # just select the first occurence of this type + if typ in types: + continue + # filter DDR4 inferior to DDR4-3333 + prefix = 'DDR4-' + if typ.startswith(prefix) and int(typ.removeprefix(prefix)) < 3333: + continue + types.append(typ) + transfers.append(_transfers[idx]) + cycle_times.append(_cycle_times[idx]) + latencies.append(_latencies[idx]) + +# transform transfers from MT/s to GB/s +transfers = np.array(transfers, dtype='float64')*8/1024 +plt.figure(figsize=(8.5,7.5)) +plt.title('Memory Bandwidth [GB/s] (1995-2023)') +# my laptop first +me = types.index('DDR5-5200') +plt.plot(range(len(types)), transfers, 'o') +plt.plot(me, transfers[me], 'o') +plt.xticks(range(len(types))[::3], types[::3], rotation=30, ha='right') +yticks = range(0,56) +ylabels = [] +for t in yticks: + if not t%5: + ylabels.append(str(t)) + else: + ylabels.append('') +plt.yticks(yticks, ylabels) +plt.ylabel('GB/s') +plt.tick_params(axis='y', which='both', reset=True, labelright=True, right=True) +plt.savefig('memory_bandwidth.svg') + +plt.figure(figsize=(8.5,7.5)) +plt.title('Memory Cycle Time [ns] (1995-2023)') +# my laptop first +me = types.index('DDR5-5200') +plt.semilogy(range(len(types)), cycle_times, 'o') +plt.semilogy(me, cycle_times[me], 'o') +plt.xticks(range(len(types))[::3], types[::3], rotation=30, ha='right') +plt.ylim(0.1, 11) +line = np.arange(0,10).astype('float64') +yticks = list(line[1:]*0.1)+list(line[1:])+list(line[1:2]*10) +ylabels = [] +for value in yticks: + if value in (0.1, 0.5, 1., 1.5, 5., 10.): + ylabels.append(f'{value} ns') + else: + ylabels.append('') +plt.yticks(yticks, ylabels) +plt.tick_params(axis='y', which='both', reset=True, labelright=True, right=True) +plt.savefig('memory_clock.svg') + +# transform transfers from MT/s to GB/s +plt.figure(figsize=(8.5,7.5)) +plt.title('Memory Latency [ns] (1998-2023)') +# my laptop first +me = types.index('DDR5-5200') +mel = latencies[me] +y = latencies[2:] +x = types[2:] +plt.plot(range(len(x)), y, 'o') +plt.plot(me, mel, 'o') +plt.xticks(range(len(x))[::3], x[::3], rotation=30, ha='right') +plt.ylim(8,40) +yticks = range(8,41) +ylabels = [] +for t in yticks: + if not t%5: + ylabels.append(str(t)+' ns') + else: + ylabels.append('') +plt.yticks(yticks, ylabels) +plt.tick_params(axis='y', which='both', reset=True, labelright=True, right=True) +plt.savefig('memory_latency.svg') + diff --git a/architecture/memory_bandwidth.svg b/architecture/memory_bandwidth.svg new file mode 100644 index 0000000..9d579a6 --- /dev/null +++ b/architecture/memory_bandwidth.svg @@ -0,0 +1,2563 @@ + + + + + + + + 2024-08-16T18:39:22.726694 + image/svg+xml + + + Matplotlib v3.8.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/architecture/memory_clock.svg b/architecture/memory_clock.svg new file mode 100644 index 0000000..1330e40 --- /dev/null +++ b/architecture/memory_clock.svg @@ -0,0 +1,1734 @@ + + + + + + + + 2024-08-16T18:39:22.912183 + image/svg+xml + + + Matplotlib v3.8.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/architecture/memory_latency.svg b/architecture/memory_latency.svg new file mode 100644 index 0000000..ff91f61 --- /dev/null +++ b/architecture/memory_latency.svg @@ -0,0 +1,1944 @@ + + + + + + + + 2024-08-16T18:39:23.040253 + image/svg+xml + + + Matplotlib v3.8.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/architecture/storage.csv b/architecture/storage.csv new file mode 100644 index 0000000..14e86f0 --- /dev/null +++ b/architecture/storage.csv @@ -0,0 +1,49 @@ +Teletype Model 33 paper tape,10 B/s,1963 +Single Density 8-inch FM Floppy Disk Controller (160 KB),31 KB/s,1973 +C2N Commodore Datasette 1530 cassette tape interface,15 B/s,1977 +Apple II cassette tape interface,200 B/s,1977 +TRS-80 Model 1 Level 1 BASIC cassette tape interface,32 B/s,1977 +Single Density 5.25-inch FM Floppy Disk Controller (180 KB),15.5 KB/s,1978 +MFM hard disk,0.625 MB/s,1980 +Amstrad CPC tape,250 B/s,1984 +High Density MFM Floppy Disk Controller (1.2 MB/1.44 MB),31 KB/s,1984 +ATA PIO Mode 0,3.3 MB/s,1986 +SCSI (Narrow SCSI) (5 MHz),5 MB/s,1986 +CD Controller (1×),0.146 MB/s,1988 +Serial Storage Architecture SSA,80 MB/s,1990 +ATA PIO Mode 1,5.2 MB/s,1994 +ATA PIO Mode 2,8.3 MB/s,1994 +ATA PIO Mode 3,11.1 MB/s,1996 +ATA PIO Mode 4,16.7 MB/s,1996 +Fibre Channel 1GFC (1.0625 GHz),103.23 MB/s,1997 +Ultra DMA ATA 33,33 MB/s,1998 +Ultra DMA ATA 66,66.7 MB/s,2000 +Fibre Channel 2GFC (2.125 GHz),206.5 MB/s,2001 +Ultra DMA ATA 100,100 MB/s,2002 +SATA revision 1.0,150 MB/s,2003 +iSCSI over 10GbE,1.239 GB/s,2004 +iSCSI over Fast Ethernet,11.9 MB/s,2004 +iSCSI over gigabit Ethernet- jumbo frames,123.9 MB/s,2004 +Serial Attached SCSI (SAS) SAS-1,300 MB/s,2004 +SATA Revision 2.0,300 MB/s,2004 +Fibre Channel 4GFC (4.25 GHz),413 MB/s,2004 +Ultra DMA ATA 133,133 MB/s,2005 +Fibre Channel 8GFC (8.50 GHz),826 MB/s,2005 +iSCSI over InfiniBand 4×,4 GB/s,2007 +SATA Revision 3.0,600 MB/s,2008 +FCoE over 10GbE,1.206 GB/s,2009 +AoE over 10GbE,1.242 GB/s,2009 +AoE over Fast Ethernet,11.9 MB/s,2009 +AoE over gigabit Ethernet- jumbo frames,124.2 MB/s,2009 +Serial Attached SCSI (SAS) SAS-2,600 MB/s,2009 +FCoE over 100G Ethernet,12.064 GB/s,2010 +iSCSI over 100G Ethernet,12.392 GB/s,2010 +Fibre Channel 16GFC (14.025 GHz),1.652 GB/s,2011 +Serial Attached SCSI (SAS) SAS-3,1.2 GB/s,2013 +SATA Express,2 GB/s,2013 +NVMe over M.2 or U.2 (using PCI Express 3.0 ×4 link),3.938 GB/s,2013 +Fibre Channel 32GFC (28.05 GHz),3.303 GB/s,2016 +Serial Attached SCSI (SAS) SAS-4,2.4 GB/s,2017 +NVMe over M.2 or U.2 (using PCI Express 4.0 ×4 link),7.876 GB/s,2017 +UFS (version 3.0),2.9 GB/s,2018 +NVMe over M.2- U.2- U.3 or EDSFF (using PCI Express 5.0 ×4 link),15.754 GB/s,2019 diff --git a/architecture/storage.py b/architecture/storage.py new file mode 100644 index 0000000..ddfacdb --- /dev/null +++ b/architecture/storage.py @@ -0,0 +1,54 @@ +# Storage interfaces rates from +# https://en.wikipedia.org/wiki/List_of_interface_bit_rates#Storage +# Table data extracted with: https://wikitable2csv.ggor.de/ +import numpy as np +import matplotlib +from matplotlib import pyplot as plt +plt.style.use('ggplot') +matplotlib.rcParams['font.size'] = 12 +matplotlib.rcParams['font.family'] = ['Exo 2', 'sans-serif'] + +data = open('storage.csv', 'rt') +# remove units and rescale everything to MB/s +b_to_mb = 1/(1024*1024) +kb_to_mb = 1/1024 +gb_to_mb = 1024 +rescaled = [] +for line in data: + typ, rate, year = line.split(',') + value, unit = rate.split() + value = float(value) + if unit == 'B/s': + value = value*b_to_mb + elif unit == 'KB/s': + value = value*kb_to_mb + elif unit == 'MB/s': + pass + elif unit == 'GB/s': + value = value*gb_to_mb + else: + raise ValueError(f'Unit not understood! {unit}') + rescaled.append((int(year), value)) + +dtype = [('year', np.float64), ('speed', np.float64)] +rescaled = np.array(rescaled, dtype=dtype) +# sort first by year and then by value +rescaled.sort(order=['year', 'speed']) + +# plot the thing +plt.figure(figsize=(8.5,7.5)) +plt.semilogy(rescaled['year'], rescaled['speed'], 'o') +# my laptop here +plt.semilogy([2023], [6585], 'o') +plt.grid(None) +plt.grid(which='both', axis='y') +plt.grid(which='both', axis='x') +plt.ylim(b_to_mb, 100*gb_to_mb) +plt.xlim(1960, 2025) +years = range(1960,2026,5) +plt.xticks(years, years, rotation=45, ha='center') +plt.yticks([b_to_mb, kb_to_mb, 1, 10, 100, gb_to_mb, 10*gb_to_mb, 100*gb_to_mb], + ['1 B/s', '1 KB/s', '1 MB/s', '10 MB/s', '100 MB/s', '1 GB/s', '10 GB/s', '100 GB/s']) +plt.tick_params(labeltop=False, labelright=True, top=True, right=True) +plt.title('Storage (read) speed') +plt.savefig('storage.svg') diff --git a/architecture/storage.svg b/architecture/storage.svg new file mode 100644 index 0000000..19be256 --- /dev/null +++ b/architecture/storage.svg @@ -0,0 +1,1526 @@ + + + + + + + + 2024-03-09T19:54:25.352366 + image/svg+xml + + + Matplotlib v3.6.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/architecture/topology.png b/architecture/topology.png new file mode 100644 index 0000000000000000000000000000000000000000..0ac05a9670e3b7c189c314cfa0f8c15361ff8c1b GIT binary patch literal 31325 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 /proc/sys/kernel/randomize_va_space + ``` + - Set scaling governor to performance for CPU0: + ```bash + echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + ``` + - Reserve CPU 0 fro our benchmark, i.e. kick out (almost) all other processes + ```bash + cset shield --cpu 0 --kthread=on + ``` + - If you are on INTEL and CPU0 is part of a SMT-pair (hyperthreading), disable the peer + ```bash + echo 0 > /sys/devices/system/cpu/cpu1/online + ``` + - Disable turbo mode on INTEL: + ```bash + echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo + ``` + - Run the configuration script for lmbench. Select only the `HARDWARE` set of benchmarks and set the maximum amount of memory to something like 1024MB + ```bash + cd /usr/lib/lmbench/scripts + # the following command will create the configuration file /usr/lib/lmbench/bin/x86_64-linux-gnu/CONFIG. + cset shield --exec -- ./config-run + # run the benchmark + cset shield --exec -- /usr/bin/lmbench-run + # results are in /var/lib/lmbench/results/x86_64-linux-gnu/ + ``` + + diff --git a/benchmark_low_level/bandwidth-t14.svg b/benchmark_low_level/bandwidth-t14.svg new file mode 100644 index 0000000..cc99a94 --- /dev/null +++ b/benchmark_low_level/bandwidth-t14.svg @@ -0,0 +1,1719 @@ + + + + + + + + 2024-08-16T18:58:33.224677 + image/svg+xml + + + Matplotlib v3.8.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/benchmark_low_level/latency-t14.svg b/benchmark_low_level/latency-t14.svg new file mode 100644 index 0000000..469c577 --- /dev/null +++ b/benchmark_low_level/latency-t14.svg @@ -0,0 +1,1801 @@ + + + + + + + + 2024-08-16T18:58:33.332734 + image/svg+xml + + + Matplotlib v3.8.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/benchmark_low_level/parse_results.py b/benchmark_low_level/parse_results.py new file mode 100644 index 0000000..0096a98 --- /dev/null +++ b/benchmark_low_level/parse_results.py @@ -0,0 +1,39 @@ +import os +import sys + +# prefix is something like results_ +results = sys.argv[1] +name = results.removeprefix('results_') +types = {} +results = open(results, 'rt') + + +for idx, line in enumerate(results): + if line.startswith('Memory read bandwidth'): + types['bwr'] = idx + elif line.startswith('Memory write bandwidth'): + types['bww'] = idx + elif line.startswith('Memory load latency'): + types['lseq'] = idx + elif line.startswith('Random load latency'): + types['lrnd'] = idx + else: + pass + +for typ, idx in types.items(): + csv = open(f'{name}-{typ}.csv', 'wt') + results.seek(0) + for count, line in enumerate(results): + if count <= idx: + continue + if line.startswith('"'): + continue + try: + val1, val2 = line.split(" ") + except ValueError: + # we are at the end of the section + csv.close() + break + csv.write(f'{val1},{val2}') + + diff --git a/benchmark_low_level/plot.py b/benchmark_low_level/plot.py new file mode 100644 index 0000000..621f00d --- /dev/null +++ b/benchmark_low_level/plot.py @@ -0,0 +1,115 @@ +import os +import sys +import numpy as np +import matplotlib +import itertools +from matplotlib import pyplot as plt +plt.style.use('ggplot') +matplotlib.rcParams['font.size'] = 12 + +name = 't14' + +caches = (48*1024, 1280*1024, 12*1024*1024) + +def get_labels(x): + xlabels = [] + for value in x: + b = int(2**value) + if b < 1024: + xlabels.append(f'{b}B') + elif b < 1048576: + xlabels.append(f'{b//1024}K') + elif b < 1073741824: + xlabels.append(f'{b//1024//1024}M') + else: + xlabels.append(f'{b//1024//1024//1024}G') + return xlabels + + +# manually set ticks, to disable, set ticks = None + +line = np.linspace(1, 10, 9, endpoint=False) +yticks = list(line)+list(line*10)+list(line[:2]*100) + +ylabels = {1 : '1 ns', 5 : '5 ns', 10 : '10 ns', 50 : '50 ns', 100: '100 ns'} +ticks = {'l': (yticks, [ylabels[i] if i in ylabels else '' for i in yticks]), + 'bw': (range(5,46,5), [f'{i} GB/s' for i in range(5,46,5)]), + } + +# manually set limits, to disable set to ylim = None + +ylim = {'l' : (1, 200), + 'bw' : (5,45), + } + +for type_ in ('bw', 'l'): + if type_ == 'bw': + suffix = ('r', 'w') + ylabel = '' + title = f'Memory Bandwidth ({name}) [GB/s]' + legend1, legend2 = 'read', 'write' + pic = f'bandwidth-{name}.svg' + plt_func = plt.plot + else: + suffix = ('seq', 'rnd') + ylabel = '' + title = f'Memory Latency ({name}) [ns]' + legend1, legend2 = 'sequential access', 'random access' + pic = f'latency-{name}.svg' + plt_func = plt.semilogy + + + data1 = np.loadtxt(f'{name}-{type_}{suffix[0]}.csv', delimiter=',') + data2 = np.loadtxt(f'{name}-{type_}{suffix[1]}.csv', delimiter=',') + + # convert to bytes and then to the corresponding power of two + + if type_ == 'bw': + x1 = np.log2(data1[:,0]*1024*1024).round() + y1 = data1[:,1]/1024 + x2 = np.log2(data2[:,0]*1024*1024).round() + y2 = data2[:,1]/1024 + else: + x1 = np.log2(data1[::2,0]*1024*1024).round() + y1 = data1[::2,1] + x2 = np.log2(data2[::2,0]*1024*1024).round() + y2 = data2[::2,1] + ylabels = None + + + xlabel = 'block size' + xlabels = get_labels(x1) + + plt.figure(figsize=(8.5,7.5)) + if type_ == 'l': + # plot two empy plots so we advance the color cyle (bad trick) + _ = plt_func([],[]) + _ = plt_func([],[]) + p1, = plt_func(x1, y1, 'o') + plt.ylabel(ylabel) + plt.xlabel(xlabel) + p2, = plt_func(x2, y2, 'o') + if ylim and type_ in ylim: + plt.ylim(*ylim[type_]) + plt.xticks(x1, xlabels, rotation=60) + if ticks and type_ in ticks: + plt.yticks(*ticks[type_]) + plt.legend((p1, p2), (legend1, legend2)) + if ylim and type_ in ylim: + miny, maxy = ylim[type_] + else: + miny = min(y1.min(), y2.min()) + maxy = max(y1.max(), y2.max()) + # caches + for idx, cache in enumerate(caches): + level = idx + 1 + size = np.log2(cache) + plt.plot((size, size), (miny, maxy), + color = 'darkblue', alpha=0.4) + plt.text(size-1, 2*miny, f'L{level}\n⟵', + color='darkblue', verticalalignment='top') + + plt.title(title) + plt.savefig(pic) + + diff --git a/benchmark_low_level/results_t14 b/benchmark_low_level/results_t14 new file mode 100644 index 0000000..dcca71f --- /dev/null +++ b/benchmark_low_level/results_t14 @@ -0,0 +1,485 @@ +[lmbench3.0 results for Linux multivac 6.10.3-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.10.3-1 (2024-08-04) x86_64 GNU/Linux] +[LMBENCH_VER: 3.0-a9] +[BENCHMARK_HARDWARE: YES] +[BENCHMARK_OS: NO] +[ALL: 512 1k 2k 4k 8k 16k 32k 64k 128k 256k 512k 1m 2m 4m 8m 16m 32m 64m 128m 256m 512m 1024m] +[DISKS: ] +[DISK_DESC: ] +[ENOUGH: 5000] +[FAST: ] +[FASTMEM: NO] +[FILE: /var/tmp/lmbench/XXX] +[FSDIR: /var/tmp/lmbench] +[HALF: 512 1k 2k 4k 8k 16k 32k 64k 128k 256k 512k 1m 2m 4m 8m 16m 32m 64m 128m 256m 512m] +[INFO: INFO.multivac] +[LINE_SIZE: ] +[LOOP_O: 0.00000000] +[MB: 1024] +[MHZ: 1296 MHz, 0.7716 nanosec clock] +[MOTHERBOARD: ] +[NETWORKS: ] +[PROCESSORS: 11] +[REMOTE: ] +[SLOWFS: YES] +[OS: x86_64-linux-gnu] +[SYNC_MAX: 1] +[LMBENCH_SCHED: DEFAULT] +[TIMING_O: 0] +[LMBENCH VERSION: 3.0-20240810] +[USER: root] +[HOSTNAME: multivac] +[NODENAME: multivac] +[SYSNAME: Linux] +[PROCESSOR: unknown] +[MACHINE: x86_64] +[RELEASE: 6.10.3-amd64] +[VERSION: #1 SMP PREEMPT_DYNAMIC Debian 6.10.3-1 (2024-08-04)] +[Sat Aug 10 04:20:43 PM CEST 2024] +[ 16:20:43 up 1:18, 4 users, load average: 0.37, 0.94, 1.05] +[net: Kernel Interface table] +[net: Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg] +[net: eth0 1500 0 0 0 0 0 0 0 0 BMU] +[if: eth0: flags=4099 mtu 1500] +[if: ether fc:5c:ee:4d:b5:eb txqueuelen 1000 (Ethernet)] +[if: RX packets 0 bytes 0 (0.0 B)] +[if: RX errors 0 dropped 0 overruns 0 frame 0] +[if: TX packets 0 bytes 0 (0.0 B)] +[if: TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0] +[if: device interrupt 16 memory 0xbc300000-bc320000] +[if: ] +[net: eth1 1500 34948 0 2352 0 7773 0 0 0 BMRU] +[if: eth1: flags=4163 mtu 1500] +[if: inet 192.168.111.103 netmask 255.255.255.0 broadcast 192.168.111.255] +[if: inet6 fe80::44e3:4a35:5130:3045 prefixlen 64 scopeid 0x20] +[if: inet6 2003:ef:2f2e:c900:e437:85c7:3d97:f353 prefixlen 64 scopeid 0x0] +[if: ether b0:4f:13:ef:1a:3e txqueuelen 1000 (Ethernet)] +[if: RX packets 34948 bytes 33936985 (32.3 MiB)] +[if: RX errors 0 dropped 2352 overruns 0 frame 0] +[if: TX packets 7773 bytes 1213416 (1.1 MiB)] +[if: TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0] +[if: ] +[net: lo 65536 95 0 0 0 95 0 0 0 LRU] +[if: lo: flags=73 mtu 65536] +[if: inet 127.0.0.1 netmask 255.0.0.0] +[if: inet6 ::1 prefixlen 128 scopeid 0x10] +[if: loop txqueuelen 1000 (Local Loopback)] +[if: RX packets 95 bytes 5588 (5.4 KiB)] +[if: RX errors 0 dropped 0 overruns 0 frame 0] +[if: TX packets 95 bytes 5588 (5.4 KiB)] +[if: TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0] +[if: ] +[mount: sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)] +[mount: proc on /proc type proc (rw,relatime)] +[mount: udev on /dev type devtmpfs (rw,nosuid,relatime,size=16228560k,nr_inodes=4057140,mode=755,inode64)] +[mount: devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)] +[mount: tmpfs on /run type tmpfs (rw,nosuid,nodev,noexec,relatime,size=3251140k,mode=755,inode64)] +[mount: /dev/mapper/CRYPT-ROOT on / type ext4 (rw,relatime,errors=remount-ro)] +[mount: securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)] +[mount: tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,inode64)] +[mount: cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot)] +[mount: pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)] +[mount: efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,nosuid,nodev,noexec,relatime)] +[mount: bpf on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)] +[mount: systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=39,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=67)] +[mount: hugetlbfs on /dev/hugepages type hugetlbfs (rw,nosuid,nodev,relatime,pagesize=2M)] +[mount: none on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime)] +[mount: mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime)] +[mount: tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k,inode64)] +[mount: tracefs on /sys/kernel/tracing type tracefs (rw,nosuid,nodev,noexec,relatime)] +[mount: tmpfs on /run/credentials/systemd-journald.service type tmpfs (ro,nosuid,nodev,noexec,relatime,nosymfollow,size=1024k,nr_inodes=1024,mode=700,inode64,noswap)] +[mount: tmpfs on /run/credentials/systemd-udev-load-credentials.service type tmpfs (ro,nosuid,nodev,noexec,relatime,nosymfollow,size=1024k,nr_inodes=1024,mode=700,inode64,noswap)] +[mount: tmpfs on /run/credentials/systemd-tmpfiles-setup-dev-early.service type tmpfs (ro,nosuid,nodev,noexec,relatime,nosymfollow,size=1024k,nr_inodes=1024,mode=700,inode64,noswap)] +[mount: configfs on /sys/kernel/config type configfs (rw,nosuid,nodev,noexec,relatime)] +[mount: fusectl on /sys/fs/fuse/connections type fusectl (rw,nosuid,nodev,noexec,relatime)] +[mount: tmpfs on /run/credentials/systemd-sysctl.service type tmpfs (ro,nosuid,nodev,noexec,relatime,nosymfollow,size=1024k,nr_inodes=1024,mode=700,inode64,noswap)] +[mount: tmpfs on /run/credentials/systemd-tmpfiles-setup-dev.service type tmpfs (ro,nosuid,nodev,noexec,relatime,nosymfollow,size=1024k,nr_inodes=1024,mode=700,inode64,noswap)] +[mount: tmpfs on /tmp type tmpfs (rw,nosuid,nodev,relatime,size=16777216k,inode64)] +[mount: tmpfs on /run/credentials/systemd-tmpfiles-setup.service type tmpfs (ro,nosuid,nodev,noexec,relatime,nosymfollow,size=1024k,nr_inodes=1024,mode=700,inode64,noswap)] +[mount: binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,nosuid,nodev,noexec,relatime)] +[mount: sunrpc on /run/rpc_pipefs type rpc_pipefs (rw,relatime)] +[mount: tmpfs on /run/user/1002 type tmpfs (rw,nosuid,nodev,relatime,size=3251136k,nr_inodes=812784,mode=700,uid=1002,gid=100,inode64)] +[mount: tmpfs on /run/credentials/getty@tty1.service type tmpfs (ro,nosuid,nodev,noexec,relatime,nosymfollow,size=1024k,nr_inodes=1024,mode=700,inode64,noswap)] +[mount: tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=3251136k,nr_inodes=812784,mode=700,inode64)] +[mount: none on /cpusets type cgroup (rw,relatime,cpuset,noprefix,release_agent=/sbin/cpuset_release_agent)] +integer bit: 0.54 nanoseconds +integer add: 0.77 nanoseconds +integer div: 8.49 nanoseconds +integer mod: 12.58 nanoseconds +int64 bit: 0.52 nanoseconds +uint64 add: 0.77 nanoseconds +int64 div: 11.58 nanoseconds +int64 mod: 14.91 nanoseconds +float add: 1.54 nanoseconds +float mul: 3.09 nanoseconds +float div: 8.49 nanoseconds +double add: 1.54 nanoseconds +double mul: 3.09 nanoseconds +double div: 10.80 nanoseconds +float bogomflops: 1.16 nanoseconds +double bogomflops: 1.54 nanoseconds +integer bit parallelism: 2.77 +integer add parallelism: 2.73 +integer div parallelism: 1.83 +integer mod parallelism: 2.83 +int64 bit parallelism: 2.49 +int64 add parallelism: 2.60 +int64 div parallelism: 1.50 +int64 mod parallelism: 1.90 +float add parallelism: 4.00 +float mul parallelism: 8.00 +float div parallelism: 3.67 +double add parallelism: 4.00 +double mul parallelism: 8.00 +double div parallelism: 3.50 +unable to register (XACT_PROG, XACT_VERS, udp). +: RPC: Unable to receive + +"libc bcopy unaligned +0.000512 41652.95 +0.001024 47761.25 +0.002048 50233.88 +0.004096 55637.27 +0.008192 64524.03 +0.016384 67719.30 +0.032768 18212.36 +0.065536 18407.52 +0.131072 18473.55 +0.262144 18475.00 +0.524288 14642.79 +1.05 8957.30 +2.10 8208.03 +4.19 8208.03 +8.39 9645.77 +16.78 7631.79 +33.55 7129.38 +67.11 6951.41 +134.22 6900.65 +268.44 6848.89 +536.87 6861.76 + +"libc bcopy aligned +0.000512 44106.76 +0.001024 49354.68 +0.002048 51472.69 +0.004096 55925.21 +0.008192 63828.24 +0.016384 66379.51 +0.032768 18202.45 +0.065536 18336.03 +0.131072 18457.77 +0.262144 18327.76 +0.524288 15715.46 +1.05 8922.33 +2.10 8367.89 +4.19 8343.10 +8.39 9679.16 +16.78 7632.95 +33.55 7179.72 +67.11 6990.51 +134.22 6911.31 +268.44 6892.15 +536.87 6891.97 + +Memory bzero bandwidth +0.000512 73586.23 +0.001024 78019.46 +0.002048 80349.42 +0.004096 74573.30 +0.008192 78524.11 +0.016384 80567.79 +0.032768 81708.84 +0.065536 21219.16 +0.131072 21299.79 +0.262144 21333.96 +0.524288 21347.23 +1.05 19382.88 +2.10 12829.98 +4.19 12611.10 +8.39 12606.02 +16.78 10399.64 +33.55 9537.93 +67.11 9140.41 +134.22 9007.90 +268.44 8931.77 +536.87 8918.57 +1073.74 8908.13 + +"unrolled bcopy unaligned +0.000512 10357.22 +0.001024 10363.21 +0.002048 10356.95 +0.004096 10357.76 +0.008192 10343.49 +0.016384 10351.27 +0.032768 7899.27 +0.065536 7893.76 +0.131072 7873.84 +0.262144 7832.99 +0.524288 7281.78 +1.05 6503.77 +2.10 6418.22 +4.19 6461.47 +8.39 5194.99 +16.78 4722.65 +33.55 4639.72 +67.11 4606.91 +134.22 4593.51 +268.44 4596.34 +536.87 4587.27 + +"unrolled partial bcopy unaligned +0.000512 41402.69 +0.001024 41453.86 +0.002048 41452.30 +0.004096 41425.45 +0.008192 41418.12 +0.016384 41333.58 +0.032768 18957.19 +0.065536 18955.39 +0.131072 18962.49 +0.262144 18969.69 +0.524288 14659.04 +1.05 8844.77 +2.10 8192.00 +4.19 8206.57 +8.39 6326.25 +16.78 5801.25 +33.55 5644.14 +67.11 5609.70 +134.22 5600.81 +268.44 5589.38 +536.87 5591.24 + +Memory read bandwidth +0.000512 29201.61 +0.001024 29294.55 +0.002048 29363.12 +0.004096 29433.86 +0.008192 29442.59 +0.016384 29285.40 +0.032768 29336.30 +0.065536 27978.05 +0.131072 28392.59 +0.262144 28408.05 +0.524288 28424.68 +1.05 28385.92 +2.10 28385.92 +4.19 28395.43 +8.39 28334.85 +16.78 26342.45 +33.55 23489.28 +67.11 22195.75 +134.22 21644.53 +268.44 21620.12 +536.87 21505.80 +1073.74 21526.50 + +Memory partial read bandwidth +0.000512 58916.90 +0.001024 59661.44 +0.002048 61203.68 +0.004096 58783.21 +0.008192 61320.45 +0.016384 61266.70 +0.032768 60940.09 +0.065536 30488.23 +0.131072 30517.76 +0.262144 30516.13 +0.524288 29627.83 +1.05 24662.86 +2.10 17384.93 +4.19 17168.66 +8.39 16915.36 +16.78 13189.64 +33.55 11584.48 +67.11 11024.95 +134.22 10892.53 +268.44 10824.45 +536.87 10781.84 +1073.74 10759.80 + +Memory write bandwidth +0.000512 41405.52 +0.001024 41396.47 +0.002048 41429.93 +0.004096 41445.34 +0.008192 41401.00 +0.016384 41398.70 +0.032768 41426.50 +0.065536 21381.05 +0.131072 21388.82 +0.262144 21374.31 +0.524288 21370.17 +1.05 18114.68 +2.10 12417.83 +4.19 12264.05 +8.39 12250.61 +16.78 9679.16 +33.55 8978.98 +67.11 8703.00 +134.22 8589.38 +268.44 8520.41 +536.87 8543.59 +1073.74 8544.75 + +Memory partial write bandwidth +0.000512 41406.05 +0.001024 41431.27 +0.002048 41414.90 +0.004096 41425.45 +0.008192 41431.04 +0.016384 41453.60 +0.032768 41366.48 +0.065536 21392.21 +0.131072 21364.37 +0.262144 21381.05 +0.524288 21366.56 +1.05 18649.81 +2.10 12411.48 +4.19 12249.30 +8.39 12300.01 +16.78 9693.61 +33.55 9024.86 +67.11 8771.25 +134.22 8618.06 +268.44 8557.89 +536.87 8549.44 +1073.74 8543.32 + +Memory partial read/write bandwidth +0.000512 20712.63 +0.001024 20714.87 +0.002048 20703.88 +0.004096 20718.77 +0.008192 20719.28 +0.016384 20715.33 +0.032768 20722.87 +0.065536 20693.70 +0.131072 20690.58 +0.262144 20638.28 +0.524288 20665.37 +1.05 18846.95 +2.10 12887.53 +4.19 12613.33 +8.39 12576.62 +16.78 10295.93 +33.55 9551.50 +67.11 9191.74 +134.22 9087.19 +268.44 9035.49 +536.87 9018.95 +1073.74 9023.04 + +Usage: tlb [-c] [-L ] [-M len[K|M]] [-W ] [-N ] + +Memory load parallelism +Usage: par_mem [-L ] [-M len[K|M]] [-W ] [-N ] + +STREAM copy latency: 1.48 nanoseconds +STREAM copy bandwidth: 10781.39 MB/sec +STREAM scale latency: 1.50 nanoseconds +STREAM scale bandwidth: 10668.00 MB/sec +STREAM add latency: 2.11 nanoseconds +STREAM add bandwidth: 11374.24 MB/sec +STREAM triad latency: 2.13 nanoseconds +STREAM triad bandwidth: 11264.63 MB/sec +STREAM2 fill latency: 0.89 nanoseconds +STREAM2 fill bandwidth: 8955.12 MB/sec +STREAM2 copy latency: 1.48 nanoseconds +STREAM2 copy bandwidth: 10775.60 MB/sec +STREAM2 daxpy latency: 1.81 nanoseconds +STREAM2 daxpy bandwidth: 13256.52 MB/sec +STREAM2 sum latency: 1.60 nanoseconds +STREAM2 sum bandwidth: 5006.72 MB/sec + +Memory load latency +"stride=128 +0.00049 3.859 +0.00098 3.859 +0.00195 3.859 +0.00293 3.859 +0.00391 3.861 +0.00586 3.858 +0.00781 3.858 +0.01172 3.859 +0.01562 3.859 +0.02344 3.859 +0.03125 3.859 +0.04688 3.861 +0.06250 11.580 +0.09375 11.576 +0.12500 11.577 +0.18750 11.583 +0.25000 11.577 +0.37500 11.576 +0.50000 11.579 +0.75000 11.578 +1.00000 11.590 +1.50000 13.543 +2.00000 13.936 +3.00000 13.999 +4.00000 13.996 +6.00000 13.997 +8.00000 14.002 +12.00000 14.976 +16.00000 19.832 +24.00000 20.880 +32.00000 21.339 +48.00000 21.899 +64.00000 22.023 +96.00000 22.156 +128.00000 22.213 +192.00000 22.283 +256.00000 22.320 +384.00000 22.306 +512.00000 22.325 +768.00000 22.345 +1024.00000 22.361 + +Random load latency +"stride=16 +0.00049 3.859 +0.00098 3.858 +0.00195 3.858 +0.00293 3.858 +0.00391 3.858 +0.00586 3.858 +0.00781 3.859 +0.01172 3.858 +0.01562 3.858 +0.02344 3.859 +0.03125 3.859 +0.04688 3.864 +0.06250 11.575 +0.09375 14.276 +0.12500 15.462 +0.18750 16.079 +0.25000 16.646 +0.37500 16.373 +0.50000 16.352 +0.75000 18.529 +1.00000 18.245 +1.50000 42.351 +2.00000 55.350 +3.00000 61.011 +4.00000 62.143 +6.00000 63.587 +8.00000 65.259 +12.00000 84.563 +16.00000 107.165 +24.00000 131.898 +32.00000 141.864 +48.00000 150.654 +64.00000 156.245 +96.00000 162.950 +128.00000 167.497 +192.00000 170.394 +256.00000 171.779 +384.00000 172.858 +512.00000 172.877 +768.00000 173.626 +1024.00000 173.702 + + + +[Sat Aug 10 04:39:13 PM CEST 2024] diff --git a/benchmark_low_level/t14-bwr.csv b/benchmark_low_level/t14-bwr.csv new file mode 100644 index 0000000..8de9220 --- /dev/null +++ b/benchmark_low_level/t14-bwr.csv @@ -0,0 +1,22 @@ +0.000512,29201.61 +0.001024,29294.55 +0.002048,29363.12 +0.004096,29433.86 +0.008192,29442.59 +0.016384,29285.40 +0.032768,29336.30 +0.065536,27978.05 +0.131072,28392.59 +0.262144,28408.05 +0.524288,28424.68 +1.05,28385.92 +2.10,28385.92 +4.19,28395.43 +8.39,28334.85 +16.78,26342.45 +33.55,23489.28 +67.11,22195.75 +134.22,21644.53 +268.44,21620.12 +536.87,21505.80 +1073.74,21526.50 diff --git a/benchmark_low_level/t14-bww.csv b/benchmark_low_level/t14-bww.csv new file mode 100644 index 0000000..c8859ca --- /dev/null +++ b/benchmark_low_level/t14-bww.csv @@ -0,0 +1,22 @@ +0.000512,41405.52 +0.001024,41396.47 +0.002048,41429.93 +0.004096,41445.34 +0.008192,41401.00 +0.016384,41398.70 +0.032768,41426.50 +0.065536,21381.05 +0.131072,21388.82 +0.262144,21374.31 +0.524288,21370.17 +1.05,18114.68 +2.10,12417.83 +4.19,12264.05 +8.39,12250.61 +16.78,9679.16 +33.55,8978.98 +67.11,8703.00 +134.22,8589.38 +268.44,8520.41 +536.87,8543.59 +1073.74,8544.75 diff --git a/benchmark_low_level/t14-lrnd.csv b/benchmark_low_level/t14-lrnd.csv new file mode 100644 index 0000000..dd3d5b5 --- /dev/null +++ b/benchmark_low_level/t14-lrnd.csv @@ -0,0 +1,41 @@ +0.00049,3.859 +0.00098,3.858 +0.00195,3.858 +0.00293,3.858 +0.00391,3.858 +0.00586,3.858 +0.00781,3.859 +0.01172,3.858 +0.01562,3.858 +0.02344,3.859 +0.03125,3.859 +0.04688,3.864 +0.06250,11.575 +0.09375,14.276 +0.12500,15.462 +0.18750,16.079 +0.25000,16.646 +0.37500,16.373 +0.50000,16.352 +0.75000,18.529 +1.00000,18.245 +1.50000,42.351 +2.00000,55.350 +3.00000,61.011 +4.00000,62.143 +6.00000,63.587 +8.00000,65.259 +12.00000,84.563 +16.00000,107.165 +24.00000,131.898 +32.00000,141.864 +48.00000,150.654 +64.00000,156.245 +96.00000,162.950 +128.00000,167.497 +192.00000,170.394 +256.00000,171.779 +384.00000,172.858 +512.00000,172.877 +768.00000,173.626 +1024.00000,173.702 diff --git a/benchmark_low_level/t14-lseq.csv b/benchmark_low_level/t14-lseq.csv new file mode 100644 index 0000000..1d0919e --- /dev/null +++ b/benchmark_low_level/t14-lseq.csv @@ -0,0 +1,41 @@ +0.00049,3.859 +0.00098,3.859 +0.00195,3.859 +0.00293,3.859 +0.00391,3.861 +0.00586,3.858 +0.00781,3.858 +0.01172,3.859 +0.01562,3.859 +0.02344,3.859 +0.03125,3.859 +0.04688,3.861 +0.06250,11.580 +0.09375,11.576 +0.12500,11.577 +0.18750,11.583 +0.25000,11.577 +0.37500,11.576 +0.50000,11.579 +0.75000,11.578 +1.00000,11.590 +1.50000,13.543 +2.00000,13.936 +3.00000,13.999 +4.00000,13.996 +6.00000,13.997 +8.00000,14.002 +12.00000,14.976 +16.00000,19.832 +24.00000,20.880 +32.00000,21.339 +48.00000,21.899 +64.00000,22.023 +96.00000,22.156 +128.00000,22.213 +192.00000,22.283 +256.00000,22.320 +384.00000,22.306 +512.00000,22.325 +768.00000,22.345 +1024.00000,22.361 diff --git a/benchmark_python/README.md b/benchmark_python/README.md new file mode 100644 index 0000000..51aa31e --- /dev/null +++ b/benchmark_python/README.md @@ -0,0 +1,29 @@ +## Benchmark +![](loading-timings-ns128.svg) +![](loading-slowdown-ns128.svg) + +## Benchmarks details + + - Create in memory a list of `N=128` one dimensional numpy arrays of length `L` starting from `L=2` up to `L=2^22=4_194_304` in steps of powers of two. + - Given that each item of the array is of type `float64`, i.e. 8 bytes, the size of the arrays goes from `16B` to `32M` + - The total memory required is at least `128 × 32M × 2 = 8G` + - Load the whole list in one big numpy array of size `N`x`L` (*good*) and `L`x`N` (*bad*). The corresponding loops are: + ```python + # good loop (store each time series on a different row) + for row, time_series in enumerate(collection): + ts[row, :] = time_series + ``` + + ```python + # bad loop (store each time series on a different column) + for column, time_series in enumerate(collection): + ts[:, column] = time_series + ``` + - Time the *bad* and the *good* loop + - Plot the timings for the *good* and the *bad* loop as a function of `L` + - Plot `slowdown = time_bad/time_good` as a function of `L` + +## Scripts + + - [Benchmark script](bench.py) and [measurements](results_ns128) + - [Plotting script](bench_plot.py) diff --git a/benchmark_python/bench.py b/benchmark_python/bench.py new file mode 100755 index 0000000..232cad4 --- /dev/null +++ b/benchmark_python/bench.py @@ -0,0 +1,68 @@ +#!/usr/bin/python3 +# Commands and ideas from: https://llvm.org/docs/Benchmarking.html +# we assume that CPU 0 and 1 are together in an intel SMT-pair (hyperthreading) +# - Disable address space randomization: +# echo 0 > /proc/sys/kernel/randomize_va_space +# - Set scaling governor to performance for CPU 0 +# echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor +# - Reserve CPU 0 fro our benchmark +# cset shield --cpu 0 --kthread=on +# - Disable the SMT-peer of CPU 0, i.e. CPU 1 +# echo 0 > /sys/devices/system/cpu/cpu1/online +# - Disable turbo mode (works only on Intel): +# echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo +# - Run with +# cset shield --exec -- ./bench.py +# + +# To use the full power of the CPU, skip all the other steps and +# just run with +# taskset --cpu-list 0 ./bench.py +import os +import sys +import timeit + +import numpy as np + +NSERIES = (128, ) +POWS = 2**np.arange(2, 23, dtype=int) + +# Size of one dimensional numpy arrays of dtype 'float64': +# A fix overhead of 96 bytes plus a variable size: +# (n_items x 8 bytes) + +def load_data_row(x, time_series): + """Store one time series per raw""" + for row, ts in enumerate(time_series): + x[row,:] = ts + return x + +def load_data_column(x, time_series): + """Store one time series per column""" + for column, ts in enumerate(time_series): + x[:, column] = ts + return x + +if __name__ == '__main__': + for nseries in NSERIES: + print(30*'=', '\n', nseries) + float_items = POWS + byte_sizes = (float_items*8) #+ 96 + bads = [] + goods = [] + results = open(f'results_ns{nseries}', 'wt') + for i, len_one_series in enumerate(float_items): + time_series = np.zeros((nseries, len_one_series), dtype='float64') + x = np.empty((nseries, len_one_series), dtype='float64') + print('Timing good...') + good = min(timeit.repeat(lambda: load_data_row(x, time_series), number=5))/5 + x = np.empty((len_one_series, nseries), dtype='float64') + print('Timing bad...') + bad = min(timeit.repeat(lambda: load_data_column(x, time_series), number=5))/5 + print(f'{len_one_series}/{POWS[-1]} {good} {bad}') + bads.append(bad) + goods.append(good) + results.write(f'{byte_sizes[i]} {good} {bad}\n') + results.flush() + results.close() + diff --git a/benchmark_python/bench_plot.py b/benchmark_python/bench_plot.py new file mode 100755 index 0000000..15e184d --- /dev/null +++ b/benchmark_python/bench_plot.py @@ -0,0 +1,106 @@ +#!/usr/bin/python3 +import os +import sys + +import numpy as np +import matplotlib +from matplotlib import pyplot as plt +plt.style.use('ggplot') +matplotlib.rcParams['font.size'] = 12 +matplotlib.rcParams['font.family'] = ['Exo 2', 'sans-serif'] + +from bench import NSERIES + +def get_xlabels(x): + xlabels = [] + for value in x: + b = int(2**value) + if b < 1024: + xlabels.append(f'{b}B') + elif b < 1048576: + xlabels.append(f'{b//1024}K') + elif b < 1073741824: + xlabels.append(f'{b//1024//1024}M') + else: + xlabels.append(f'{b//1024//1024//1024}G') + return xlabels + +def get_ylabels(y): + ylabels = [] + for power in y: + power = int(np.log10(power)) + if power < -6: + value = 10**(power+9) + ylabels.append(f'{value}ns') + elif power < -3: + value = 10**(power+6) + ylabels.append(f'{value}μs') + elif power < 0: + value = 10**(power+3) + ylabels.append(f'{value}ms') + else: + value = 10**power + ylabels.append(f'{value}s') + return ylabels + +prefix = 'results_ns' +maxy = 1e1 +miny = 1e-6 +for results in (f for f in os.listdir('.') if f.startswith(prefix)): + num_series = results.removeprefix(prefix) + + sizes, bads, goods = [], [], [] + with open(results, 'r') as fh: + for line in fh: + size, good, bad = line.split() + bads.append(float(bad)) + goods.append(float(good)) + sizes.append(int(size)) + goods = np.array(goods) + bads = np.array(bads) + x = np.log2(sizes) + y1 = goods + y2 = bads + # generate two plots: good+bad timings and slowdown plot + plt.figure(figsize=(8.5, 7.5)) + p1, = plt.semilogy(x, y1, 'o') + p2, = plt.semilogy(x, y2, 'o') + plt.xlabel('size of one time series') + plt.ylabel('loading time') + plt.grid(None) + plt.grid(which='both', axis='both') + plt.xticks(x, get_xlabels(x), rotation=60) + plt.ylim(miny, maxy) + yticks = np.logspace(int(np.log10(miny)), + int(np.log10(maxy)), + num=int(np.log10(maxy/miny))+1) + plt.yticks(yticks, get_ylabels(yticks)) + plt.tick_params(axis='y', labelright=True, right=True) + lgd = plt.legend((p1, p2), ('good', 'bad'), frameon=True) + lgd.get_frame().set_edgecolor('black') + plt.title(f'Timings\n{num_series} time series') + plt.savefig(f'loading-timings-ns{num_series}.svg') + + # slowdown plot + plt.figure(figsize=(8.5, 7.5)) + p1, = plt.plot(x, bads/goods, 'og', label=r'$\frac{\mathrm{time\_bad}}{\mathrm{time\_good}}$') + plt.xlabel('size of one time series') + plt.ylabel('slowdown') + plt.grid(None) + plt.grid(which='both', axis='both') + plt.xticks(x, get_xlabels(x), rotation=60) + plt.tick_params(axis='y', which='both', reset=True, labelright=True, right=True) + lmaxy = (bads/goods).max() + yticks = range(0, int(np.ceil(lmaxy))+1) + yticks_labels = [] + for i in yticks: + if not i%5: + yticks_labels.append(str(i)) + else: + yticks_labels.append('') + plt.yticks(yticks, yticks_labels) + #plt.legend((p1,), ('time_bad/time_good',)) + lgd = plt.legend(frameon=True, fontsize=16) + lgd.get_frame().set_edgecolor('black') + plt.title(f'Slowdown\n{num_series} time series') + plt.savefig(f'loading-slowdown-ns{num_series}.svg') diff --git a/benchmark_python/loading-slowdown-ns128.svg b/benchmark_python/loading-slowdown-ns128.svg new file mode 100644 index 0000000..5f24215 --- /dev/null +++ b/benchmark_python/loading-slowdown-ns128.svg @@ -0,0 +1,2360 @@ + + + + + + + + 2024-08-05T16:24:04.379937 + image/svg+xml + + + Matplotlib v3.8.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/benchmark_python/loading-timings-ns128.svg b/benchmark_python/loading-timings-ns128.svg new file mode 100644 index 0000000..68d0234 --- /dev/null +++ b/benchmark_python/loading-timings-ns128.svg @@ -0,0 +1,2348 @@ + + + + + + + + 2024-08-05T16:24:04.166622 + image/svg+xml + + + Matplotlib v3.8.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/benchmark_python/results_ns128 b/benchmark_python/results_ns128 new file mode 100644 index 0000000..234cca4 --- /dev/null +++ b/benchmark_python/results_ns128 @@ -0,0 +1,21 @@ +32 3.624640012276359e-05 3.637080008047633e-05 +64 3.6378599907038735e-05 3.75960000383202e-05 +128 3.5999999818159266e-05 3.659379981399979e-05 +256 3.647979974630289e-05 3.8503600080730394e-05 +512 3.6466600067797114e-05 4.5260399929247797e-05 +1024 3.694279985211324e-05 6.389359987224452e-05 +2048 3.771199990296736e-05 0.00010158859986404422 +4096 3.9600799937034026e-05 0.00017927039989444892 +8192 4.872880017501302e-05 0.00035019980023207606 +16384 0.0001166390000435058 0.0009462125999561977 +32768 0.00020714380007120782 0.0018965299997944385 +65536 0.00041309340012958274 0.003799166400131071 +131072 0.0009548601999995298 0.013321203599844011 +262144 0.002020656999957282 0.03497214360031649 +524288 0.004090915599954314 0.07588242120000359 +1048576 0.008223017600175807 0.15468134920010926 +2097152 0.01658681320004689 0.3135109368002304 +4194304 0.03318921820027754 0.629940018599882 +8388608 0.031091862199900788 1.2587968365998676 +16777216 0.0620614524003031 2.517574722000063 +33554432 0.125347068800329 5.040295794399936 diff --git a/exercise-my-solution.ipynb b/exercise-my-solution.ipynb new file mode 100644 index 0000000..6d5861f --- /dev/null +++ b/exercise-my-solution.ipynb @@ -0,0 +1,241 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "execution": { + "iopub.execute_input": "2024-03-04T09:40:28.904Z", + "iopub.status.busy": "2024-03-04T09:40:28.896Z", + "iopub.status.idle": "2024-03-04T09:40:28.978Z", + "shell.execute_reply": "2024-03-04T09:40:28.967Z" + } + }, + "outputs": [], + "source": [ + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "execution": { + "iopub.execute_input": "2024-03-04T10:02:39.062Z", + "iopub.status.busy": "2024-03-04T10:02:39.057Z", + "iopub.status.idle": "2024-03-04T10:02:39.068Z", + "shell.execute_reply": "2024-03-04T10:02:39.071Z" + } + }, + "outputs": [], + "source": [ + "n_series = 32\n", + "len_one_series = 5*2**20\n", + "time_series = np.random.rand(n_series, len_one_series)\n", + "gap = 16*2**10" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "execution": { + "iopub.execute_input": "2024-03-04T10:02:41.027Z", + "iopub.status.busy": "2024-03-04T10:02:41.020Z", + "iopub.status.idle": "2024-03-04T10:02:41.036Z", + "shell.execute_reply": "2024-03-04T10:02:41.040Z" + }, + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Size of one time series: 40 M\n", + "Size of collection: 1280 M\n", + "Gap size: 128 K\n", + "Gapped series size: 2 K\n" + ] + } + ], + "source": [ + "print(f'Size of one time series: {int(time_series[0].nbytes/2**20)} M')\n", + "print(f'Size of collection: {int(time_series.nbytes/2**20)} M')\n", + "print(f'Gap size: {int(gap*8/2**10)} K')\n", + "print(f'Gapped series size: {int(time_series[0, ::gap].nbytes/2**10)} K')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following function implements an approximation of a power series of every `gap` value in our time series.\n", + "\n", + "If we define one time series of length `N` to be:\n", + "\n", + "$[x_0, x_1, x_2, ..., x_N]$,\n", + "\n", + "then the \"gapped\" series with `gap=g` is:\n", + "\n", + "$[x_0, x_g, x_{2g}, ..., x_{N/g}]$,\n", + "\n", + "where $N/g$ is the number of gaps.\n", + "\n", + "The approximation of the power series up to power `30` for our \"gapped\" series is defined as:\n", + "\n", + "$$\\mathbf{P} = \\sum_{p=0}^{30} \\sum_i x_i^{p} = \\sum_i x_i^0 + \\sum_i x_i^1 + \\sum_i x_i^2 + ... + \\sum_i x_i^{30} $$\n", + "\n", + "where $i \\in [0, g, 2g, ..., N/g]$" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "execution": { + "iopub.execute_input": "2024-03-04T10:06:08.461Z", + "iopub.status.busy": "2024-03-04T10:06:08.459Z", + "iopub.status.idle": "2024-03-04T10:06:08.466Z", + "shell.execute_reply": "2024-03-04T10:06:08.468Z" + } + }, + "outputs": [], + "source": [ + "# compute an approximation of a power series for a collection of gapped timeseries\n", + "def power(time_series, P, gap):\n", + " for row in range(time_series.shape[0]):\n", + " for pwr in range(30):\n", + " P[row] += (time_series[row, ::gap]**pwr).sum()\n", + " return P\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Challenge\n", + "- Can you improve on the above implementation of the `power` function?\n", + "- Change the following `power_improved` function and see what you can do\n", + "- **Remember**: you can't change any other cell in this notebook!" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "execution": { + "iopub.execute_input": "2024-03-04T10:06:08.461Z", + "iopub.status.busy": "2024-03-04T10:06:08.459Z", + "iopub.status.idle": "2024-03-04T10:06:08.466Z", + "shell.execute_reply": "2024-03-04T10:06:08.468Z" + } + }, + "outputs": [], + "source": [ + "def power_improved(time_series, P, gap):\n", + " y = time_series[:,::gap].copy()\n", + " for row in range(time_series.shape[0]):\n", + " for pwr in range(30):\n", + " P[row] += (y[row, :]**pwr).sum()\n", + " return P" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# verify that they yield the same results\n", + "P = np.zeros(n_series, dtype='float64')\n", + "out1 = power(time_series, P, gap)\n", + "P = np.zeros(n_series, dtype='float64')\n", + "out2 = power_improved(time_series, P, gap)\n", + "np.testing.assert_allclose(out1, out2)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "execution": { + "iopub.execute_input": "2024-03-04T10:06:14.959Z", + "iopub.status.busy": "2024-03-04T10:06:14.956Z", + "iopub.status.idle": "2024-03-04T10:06:17.437Z", + "shell.execute_reply": "2024-03-04T10:06:17.443Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "38.9 ms ± 492 μs per loop (mean ± std. dev. of 7 runs, 10 loops each)\n" + ] + } + ], + "source": [ + "P = np.zeros(n_series, dtype='float64')\n", + "%timeit power(time_series, P, gap)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "execution": { + "iopub.execute_input": "2024-03-04T10:06:20.056Z", + "iopub.status.busy": "2024-03-04T10:06:20.053Z", + "iopub.status.idle": "2024-03-04T10:06:21.695Z", + "shell.execute_reply": "2024-03-04T10:06:21.700Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6.79 ms ± 35.2 μs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n" + ] + } + ], + "source": [ + "P = np.zeros(n_series, dtype='float64')\n", + "%timeit power_improved(time_series, P, gap)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.5" + }, + "nteract": { + "version": "0.28.0" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/numpy/README.md b/numpy/README.md new file mode 100644 index 0000000..a73b534 --- /dev/null +++ b/numpy/README.md @@ -0,0 +1,31 @@ +# Anatomy of a numpy array +## one dimension, float64 +![1d array](ndarray-memory-layout-1d.svg) + +## two dimensions, square, float64 +![2d array - square](ndarray-memory-layout-2d-square.svg) + +## two dimensions, rectangular, int32 +![2d array - rectangular](ndarray-memory-layout-2d-rectangular.svg) + +## what about Python lists? +![memory layout of a Python list](python-list-memory-layout.svg) + +## interesting attributes of numpy arrays + - `x.data`, `x.data.hex()`, `x.data.format`, `x.tobytes()` + - `x.flags`: + - `OWNDATA` + - `C_CONTIGUOUS` + - `F_CONTIGUOUS` + - more [flags](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.flags.html) + +## If your arrays are bigger than RAM + - [`numpy.memmap`](https://numpy.org/doc/stable/reference/generated/numpy.memmap.html): an array-like + object that maps memory to an array stored on disk, used for accessing small segments of large + files on disk, without reading the entire file into memory. Use with caution! + + - [`HDF5`](https://support.hdfgroup.org/documentation/hdf5/latest/_intro_h_d_f5.html): hierarchical + data format, with aribitrary metadata and multilanguage support + with [`h5py`](https://docs.h5py.org/en/stable/) with an array-lie interface + - other projects, for example [`xarray`](https://docs.xarray.dev/en/stable/) + and [`zarr`](https://zarr.readthedocs.io/en/stable/) diff --git a/numpy/ndarray-memory-layout-1d.svg b/numpy/ndarray-memory-layout-1d.svg new file mode 100644 index 0000000..26e8c2a --- /dev/null +++ b/numpy/ndarray-memory-layout-1d.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/numpy/ndarray-memory-layout-2d-rectangular.svg b/numpy/ndarray-memory-layout-2d-rectangular.svg new file mode 100644 index 0000000..cff7818 --- /dev/null +++ b/numpy/ndarray-memory-layout-2d-rectangular.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/numpy/ndarray-memory-layout-2d-square.svg b/numpy/ndarray-memory-layout-2d-square.svg new file mode 100644 index 0000000..69e08b9 --- /dev/null +++ b/numpy/ndarray-memory-layout-2d-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/numpy/python-list-memory-layout.svg b/numpy/python-list-memory-layout.svg new file mode 100644 index 0000000..358c330 --- /dev/null +++ b/numpy/python-list-memory-layout.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/parallel/README.md b/parallel/README.md new file mode 100644 index 0000000..73d4d1d --- /dev/null +++ b/parallel/README.md @@ -0,0 +1,24 @@ +# The dangers and joys of automatic parallelization (like in numpy linear algebra routines) and the use of clusters/schedulers (but also on your laptop) +- Go through the [notebook](../parallel.ipynb) to play around with numpy auto-parallelization, CPU affinity and OpenMP thread pool control + +- Now we want to submit our code to a cluster, or even just running it in parallel on our own laptop: + - run [`overcommit.py`](overcommit.py) while monitoring with htop + - try the [`submit.sh`](submit.sh) script + - see problems with overcomitting + - explain the PSI (Pressure Stalled Information) fields in `htop`. Useful readings: + - https://docs.kernel.org/accounting/psi.html + - https://facebookmicrosites.github.io/psi/docs/overview +- Discuss implications for local and cluster workflows + +# Hands on +- Let's try to make it more quantitative: + - Write a benchmark in the style of [benchmark_python](../benchmark_python/bench.py) + - We want to assess the performance of matrix multiplication as a function of: + - the size of the matrix `N` + - the number of openMP threads `T`, controlled with `threadpoolctl` or by environment variable `OMP_NUM_THREADS` + - the number of processes `P`, controlled by the [`submit.sh`](submit.sh) script or something similar +- The results will of course depend on the particular architecture of the machine on which you are running +- Submit your benchmark, together with some plotting routines, as a PR to this repo! + + + diff --git a/setup/generate_materials.py b/setup/generate_materials.py new file mode 100644 index 0000000..1c8a3b1 --- /dev/null +++ b/setup/generate_materials.py @@ -0,0 +1,37 @@ +MSVG = 'template.svg' +TEMPL = '0xNN' +NREG = 4 +N = 30 + + +import sys +import subprocess + +if N > 255: + print('cannot do it!') + sys.exit() + +addresses = [hex(i).replace("0x", "0x0") for i in range(N//2+1)] + \ + [hex(i) for i in range(N//2+1,N)] + \ + [f'REG{i}' for i in range(NREG)] + +msvg = open(MSVG).read() +delete = [] +to_join = [] +for a in addresses: + print(f'Processing {a}...') + new_svg = a+MSVG + new_svg_pdf = new_svg.replace('.svg', '.pdf') + with open(new_svg, 'wt') as svg: + svg.write(msvg.replace(TEMPL,a)) + delete.extend([new_svg, new_svg_pdf]) + subprocess.run(['inkscape', '--export-filename='+new_svg_pdf, new_svg], capture_output=True) + to_join.append(new_svg_pdf) + +subprocess.run(['pdftk'] + to_join + ['output', 'materials.pdf'], capture_output=True) +subprocess.check_call(['rm'] + delete) + + + + + diff --git a/setup/materials.pdf b/setup/materials.pdf new file mode 100644 index 0000000000000000000000000000000000000000..fdc550077424001351c0f8260d342e1e90dcd2b4 GIT binary patch literal 215911 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[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 q+S(pe4AuZ_#mc76hI + + + + + + + + + + + + + + + 0xNN + 0xNN + + From b2e104b696ba23245e7f53f6dc9d45f81f3121b0 Mon Sep 17 00:00:00 2001 From: Tiziano Zito Date: Fri, 15 Aug 2025 19:29:42 +0200 Subject: [PATCH 2/4] add a big picture scheme for comp arch --- architecture/README.md | 2 ++ architecture/computer_architecture_big_picture.svg | 1 + 2 files changed, 3 insertions(+) create mode 100644 architecture/computer_architecture_big_picture.svg diff --git a/architecture/README.md b/architecture/README.md index c9811a4..f4fc21c 100644 --- a/architecture/README.md +++ b/architecture/README.md @@ -64,6 +64,8 @@ - temporal and spacial locality of data - The gory details about the memory hierarchy: [What Every Programmer Should Know About Memory](https://www.akkadia.org/drepper/cpumemory.pdf) by the notorious Ulrich Drepper +![Computer architecture - big picture](comp_architecture_big_picture.svg) + # …and what about the GPU? ![GPU vs CPU architecture](GPUvsCPU-architecture.png) - A GPU has many (in the order of hundreds) SIMT (single instruction, multiple thread) cores, so called SMs (Streaming Multiprocessors), each one with local L1 and shared L2 caches, and shared RAM (due to to the high parallelism, with huge bandwidth, in the order of ~1TB/s) diff --git a/architecture/computer_architecture_big_picture.svg b/architecture/computer_architecture_big_picture.svg new file mode 100644 index 0000000..9b71c49 --- /dev/null +++ b/architecture/computer_architecture_big_picture.svg @@ -0,0 +1 @@ + \ No newline at end of file From 3dbc354460a0e70b32a77b8e794e0eb02d4db336 Mon Sep 17 00:00:00 2001 From: Tiziano Zito Date: Fri, 15 Aug 2025 19:30:51 +0200 Subject: [PATCH 3/4] rename file --- ...itecture_big_picture.svg => comp_architecture_big_picture.svg} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename architecture/{computer_architecture_big_picture.svg => comp_architecture_big_picture.svg} (100%) diff --git a/architecture/computer_architecture_big_picture.svg b/architecture/comp_architecture_big_picture.svg similarity index 100% rename from architecture/computer_architecture_big_picture.svg rename to architecture/comp_architecture_big_picture.svg From cae320374b88debfe70cc5b4058de4b23f8f1555 Mon Sep 17 00:00:00 2001 From: Tiziano Zito Date: Fri, 15 Aug 2025 19:54:59 +0200 Subject: [PATCH 4/4] add presentation mode for schematics --- ...p_architecture_big_picture_presentation.pdf | Bin 0 -> 125070 bytes ...mp_architecture_schematics_presentation.pdf | Bin 0 -> 217078 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 architecture/comp_architecture_big_picture_presentation.pdf create mode 100644 architecture/comp_architecture_schematics_presentation.pdf diff --git a/architecture/comp_architecture_big_picture_presentation.pdf b/architecture/comp_architecture_big_picture_presentation.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c821bce14f87d8ce4a366c9bc4f800197122450d GIT binary patch literal 125070 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

?} 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�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

gpHyCwILgHBc4j#g-B`D%9v_+afeS4zbgSbN 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 Rhnou#j*?PbK>`u({{ftqomv0@ literal 0 HcmV?d00001 diff --git a/architecture/comp_architecture_schematics_presentation.pdf b/architecture/comp_architecture_schematics_presentation.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8ebea388afef723bd1eb7a16043b81fca858ffa9 GIT binary patch literal 217078 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