Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Moscow Python Meetup №105. Пётр Андреев (МФТИ,...

Moscow Python Meetup №105. Пётр Андреев (МФТИ, лектор по курсу Advanced Python). Дотянуться до кремния. HighLoad Python: SIMD, GPU

Python в 2025-м — уже не «скрипт», а инструмент, который жмёт на железо: AVX-512/SVE, Tensor Cores, NVLink/NVSwitch, HBM. Но где хватит CPU-SIMD и горизонтального масштабирования, а где GPU окупает TCO? На живых бенчмарках сравним NumPy2 (SIMD), Numba, и GPU-стек.

Разберём устройство C/GPU на уровне принятия решений (SM/warps, Tensor Cores, MIG). Практическая польза:

Чек-лист выбора: SIMD vs GPU vs горизонтальное масштабирование по метрикам TFLOPS/Вт, латентность и TCO
Антипаттерны: когда GPU не ускорит, где SIMD упирается в память и когда стоит идти в кластер/шардинг
Benchmark-suite и исходники для повторения тестов на вашей инфраструктуре

Видео: https://moscowpython.ru/admin/meetup/talk/321/change/

Moscow Python: http://moscowpython.ru
Курсы Learn Python: http://learn.python.ru
Moscow Python Podcast: http://podcast.python.ru
Заявки на доклады: https://bit.ly/mp-speaker

Avatar for Moscow Python Meetup

Moscow Python Meetup PRO

September 22, 2025
Tweet

More Decks by Moscow Python Meetup

Other Decks in Programming

Transcript

  1. автор tg: @PyotrAndreev 7 Transistor Internals silicon wafer / crystal

    manufacturing SMT / SIMD GPU +industry +future Что сегодня на обед ? >>> print('Hello World!') Hello World! +ecosystem
  2. автор tg: @PyotrAndreev 9 Transistor Internals silicon wafer / crystal

    manufacturing / sand -> wafer / time / crystalline silicon to Instagram: • Time: days-month • 1420°C • 265kg ≈ 300mm x 2m
  3. автор tg: @PyotrAndreev 11 Transistor Silicon wafer: • ultra clean,

    выращенная • 30 sm • ≈$100 buy here Internals making micro-chip
  4. автор tg: @PyotrAndreev 12 Photo-lithograph Internals making micro-chip / videos:

    TSMC, ASML, Carl Zeiss SMT TSMC Netherlands Germany Taiwan $170M <- ASML: EUV-сканеры <- Carl Zeiss SMT: оптика
  5. автор tg: @PyotrAndreev 13 Photo-lithograph Internals ASML videos / EUV

    explanation Вы не захотите это потрогать ! x40 of surface sun temperature ≈220,000°C олово Как порождается EUV ? ≈25kW - light energy (initial)
  6. автор tg: @PyotrAndreev 14 Photo-lithograph Internals ASML videos / EUV

    explanation Давайте посмотрим на этот процесс
  7. автор tg: @PyotrAndreev 15 Photo-lithograph Internals making micro-chip / chip

    manufacturing • 13.5nm – EUV • $300th – photo mask cost • 8nm resolution • 0.5–2% EUV dropped into wafer chips on 300mm wafer: (in the end) • or ≈100 GPUs • or ≈200 CPUs • or ≈1000 DRAM
  8. автор tg: @PyotrAndreev 16 Photo-lithograph Internals making micro-chip / chip

    manufacturing / more about the process super precision If EUV mirror is size of Russia, then the largest unevenness < 4.8mm high
  9. автор tg: @PyotrAndreev 20 Photo-lithograph Internals ≈ 100$ ≈ 150

    000$ wafer 125 gram ≈ gold gram x10 ≈ 1kg of gold PRICE: 3 months ≈1000steps ≈200 CPUs 1 CPU: ≈26B transistors monthly: 50th wafers ≈ $7.5B
  10. автор tg: @PyotrAndreev 23 TSMC In time infestor report /

    A14 process / specialty technology / 3D fabric Technology: • tech-process И куда мы движемся?
  11. автор tg: @PyotrAndreev 25 Transistor Future <A10: 2D materials /

    transistor roadmap / Interuniversity Microelectronics Centre Сложное будущее: Moore's law
  12. автор tg: @PyotrAndreev 26 TSMC History TSMC Tech Symposium Produce

    chips ≥ min тех.процесс Страшный график:
  13. автор tg: @PyotrAndreev 27 TSMC RoadMap TSMC Tech Symposium Source

    маркетинга: Each year: faster: 20% energy: less consumption
  14. автор tg: @PyotrAndreev 29 Transistor Internals silicon wafer / crystal

    manufacturing SMT / SIMD GPU +industry +future >>> print('Hello World!') Hello World! +ecosystem
  15. автор tg: @PyotrAndreev 30 Transistor Sizes image Вафля, что в

    чипе? Когда вы купили свой компьютер?
  16. Logic Gates: transistor combinations автор tg: @PyotrAndreev 37 Transistor Architectures

    transistors in CPU / simple CPU Transistors: Chip: elementary Math: sum, mul, … Units: logic gate combinations IP Core: unit combinations Core: IP Core combinations Всё для чего?
  17. автор tg: @PyotrAndreev 38 Marketing Internals Each year: faster: 20%

    energy: less consumption Простой слайд:
  18. автор tg: @PyotrAndreev 39 processing units Internals • ≤ 128

    ядер – решение общих задача • сильные ядра + предсказание ветвлений, большие кеши • параллельность: ядра + векторизация + … • лучше для: одной большой задачи за раз CPU architecture / CPU works / G/CPU schemes • ~ 100 спец.ядер: • оптимизация: пропускная способность • параллельность: ~ 10th потоков • лучше для: many the same independent simple tasks GPU: много, просто, одновременно CPU: мало, сложно, быстро
  19. автор tg: @PyotrAndreev 40 CPU Internals elementary Math: sum, mul,

    … Units: logic gate combinations IP Core: unit combinations Core: IP Core combinations $ python3 -c 'print(1+1)' 2 $ python3 -m timeit -s 'int(1000)' 50000000 loops, best of 5: 5.31 nsec per loop Byte-codes ISA Instruction Set Architecture = CPU language micro-ops CPU decodes ISA to µ-ops C compiled CPython for CPU
  20. автор tg: @PyotrAndreev 41 CPU SMT/Hyper-Threading in core 1 core

    – many logical cores. Each logical has independent: • счётчики команд, физ.регистры но общие: • исполнительные блоки, кэши, буферы Площадь кристалла ограничена: -дублирование и межъядерная инфра энергопотребление/выделение тепла в рамках logical cores is 10–40% compute power: • L2/L3-miss, TLB-miss, mispredict, … Оба лог.ядра конкурируют за общие ресурсы. два аппаратных контекста и общий исполнительный тракт SMT • прячет латентности • физически реализованная многопоточность внутри одного ядра logic core SP: указатель стека IP: счётчик команд GPR, флаги/статус, контекст предсказателя, … core logic core SP: указатель стека IP: счётчик команд GPR, флаги/статус, контекст предсказателя, … scheduler, branch predictor, TLB, блоки исполнения, кэши, шины, частота, термобюджет, Load/Store Unit, SIMD* cache-miss
  21. автор tg: @PyotrAndreev 42 CPU: SIMD AVX/SVE Сколько «чисел» влезает

    в вектор (примерно, зависит от выбранного формата) • 128 бит (NEON/XMM): 16×int8, 8×int16, 4×float32, 2×float64 • 256 бит (YMM): 32×int8, 16×int16, 8×float32, 4×float64 • 512 бит (ZMM): 64×int8, 32×int16, 16×float32, 8×float64 • SVE 2048 бит: 256×int8 или 32×float64. где SIMD упирается в память и когда стоит идти в кластер/шардинг применение одной и той же операции ко множеству элементов векторного регистра и возвращает вектор результата
  22. автор tg: @PyotrAndreev 44 Benchmarks maths out = sin(a*b +

    c) + sqrt(|a-b|) pure_python.py 0.043s / N=2*105 / float32 numba_simd.py 0.012s / N=107 / float32
  23. автор tg: @PyotrAndreev 46 PyCuda Internals 1. от сообщества: А.Клекнер

    2. питонячая обёртка над CUDA -> верхнеуровневый доступ к API CUDA pycuda: github / doc