Please enable JavaScript to use this page!

AllTalks site logo
πŸ”

Know your hardware: CPU memory hierarchy

A modern CPU is a combination of many sophisticated features. Among them, the memory hierarchy probably has the most impact on the performance of your programs. Understanding how it works is essential for writing high-performance applications. The talk provides an overview of the structure and algorithms of the memory hierarchy in a modern CPU. Specific topics include cache organization, locality principle and cache-friendly data organization. In addition, some practical guidelines are given to avoid common performance traps. The talk does not require any prior knowledge of hardware design.


ITeaConf

40 min

Π’ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ· ΡƒΡŽΡ‚Π½ΠΎΠ³ΠΎ ΠΌΠΈΡ€Π° Java: ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠ΅ Ρ‚ΡƒΠ΄Π° ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ

Иван Углянский

Π§Ρ‚ΠΎ: ΠΈΠ½Ρ‚Π΅Ρ€ΠΎΠΏ ΠΌΠ΅ΠΆΠ΄Ρƒ Java ΠΈ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π·Π°Ρ‡Π΅ΠΌ: Π·Π°Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ managed ΠΊΠΎΠ΄Π° Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚, приходится ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ, написанными (Π² Π»ΡƒΡ‡ΡˆΠ΅ случаС) Π½Π° C. Как: Ρ‚Π°ΠΊ ΠΏΡ€ΠΎ это ΠΈ вСс…

C++ Russia

51 min

Π­Π²ΠΎΠ»ΡŽΡ†ΠΈΡ мСтапрограммирования: ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со списками Ρ‚ΠΈΠΏΠΎΠ²

ОлСг Π€Π°Ρ‚Ρ…ΠΈΠ΅Π²

Π“Π»ΡƒΠ±ΠΎΠΊΠΈΠΉ рассказ ΠΎ ΠΌΠ΅Ρ‚Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π² рСтроспСктивС. ΠžΠ±ΡΡƒΠ΄ΠΈΠΌ ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ Π² ΠΌΠ΅Ρ‚Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Ρ‘ΠΌ ΠΊ спискам Ρ‚ΠΈΠΏΠΎΠ². По шагам напишСм Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со списками т…

C++ Siberia

87 min

НСзамСнимый Π‘++

Антон ΠŸΠΎΠ»ΡƒΡ…ΠΈΠ½

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π½ΠΎΠ²ΠΎΠΌΠΎΠ΄Π½Ρ‹ΠΉ язык программирования Π½ΠΎΡ€ΠΎΠ²ΠΈΡ‚ Π·Π°ΡΠ²ΠΈΡ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ быстрСС, Π½Π°Π΄Ρ‘ΠΆΠ½Π΅Π΅ ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΏΠΎ всСм ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ Π² нСсколько Ρ€Π°Π· Π»ΡƒΡ‡ΡˆΠ΅ C++

C++ Russia

60 min

Как Π°ΠΏΠ³Ρ€Π΅ΠΉΠ΄ΠΈΠ»ΠΈ компилятор ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»ΠΈ ΠΊΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ

ΠœΠΈΡ…Π°ΠΈΠ» ΠœΠ°Ρ‚Ρ€ΠΎΡΠΎΠ², АлСксандр Π’ΠΎΡ€ΠΎΠ½ΠΊΠΎΠ²

Для нашСй ΠΊΠΎΠ΄ΠΎΠ±Π°Π·Ρ‹ Π½Π° 2М строк ΠΊΠΎΠ΄Π° с Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ 80 сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ MFC) ΠΌΡ‹ Π΄ΠΎΠ»Π³ΠΎΠ΅ врСмя использовали Π‘++11 Π² Visual Studio 2013 (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ΄ Windows), Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π‘++17 Π² Vi…

C++ Russia

58 min

Concurrency and parallelism in C++17 and C++20/23

Rainer Grimm

What do threads, atomic variables, mutexes, and conditional variables have in common? They are the basic building blocks of any concurrent application in C++, which are a big challenge even for the e…

C++ Russia

52 min

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ C++ ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

Π‘Π΅Ρ€Π³Π΅ΠΉ Π€Π΅Π΄ΠΎΡ€ΠΎΠ²

Когда ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с Π‘Π”, ΠΌΡ‹ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ сырыС Π±ΡƒΡ„Π΅Ρ€Ρ‹, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ хочСтся ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π²ΠΈΠ΄Π΅ структур, классов ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² C++. Рассказ ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° PostgreSQ…

C++ Russia

92 min

C++17 β€” the biggest traps

Nicolai Josuttis

C++17 is a huge combination of small new features both in the language and the library. These features have more poser but also more traps than you might expect. These traps are not theoretical. They…

C++ Siberia

51 min

ΠžΠ±Π·ΠΎΡ€ C++ ΠΊΠΎΠ΄Π° Π³Π»Π°Π·Π°ΠΌΠΈ ΠΏΠ°Ρ€Π°Π½ΠΎΠΈΠΊΠ°

Π€ΠΈΠ»ΠΈΠΏΠΏ Π₯Π°Π½Π΄Π΅Π»ΡŒΡΠ½Ρ†

Код языка C++ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ ΠΌΠΈΠ½Π½ΠΎΠΌΡƒ полю. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ качСствСнный Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ code-review ΠΊΡ€Π°ΠΉΠ½Π΅ ΠΏΠΎΠ»Π΅Π·Π΅Π½. Π­Ρ‚ΠΎΡ‚ Π΄ΠΎΠΊΠ»Π°Π΄ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ ваши Π½Π°Π²Ρ‹ΠΊΠΈ Π² этом Π½Π΅Π»Ρ‘Π³ΠΊΠΎΠΌ Π΄Π΅Π»Π΅. ΠœΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π°Ρ… ошибок, ΠΎ ко…

C++ Russia

57 min

ΠœΠ΅Ρ‚Π°ΠΊΠ»Π°ΡΡΡ‹ Π² C++17: фантастика? Π Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ!

Π‘Π΅Ρ€Π³Π΅ΠΉ Π‘Π°Π΄ΠΎΠ²Π½ΠΈΠΊΠΎΠ²

Π”ΠΎΠΊΠ»Π°Π΄ посвящён ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ мСтаклассов (ΠΏΡ€ΠΎΠΏΠΎΠ·Π°Π» p0707 rev3 β€” послСдний доступный ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚) для Ρ‚Π΅Ρ… вСрсий компиляторов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π½ΠΈ статичСской рС…

YaTalks

39 min

БСрвис Π½Π° userver: Ρ‡Ρ‚ΠΎ снаруТи ΠΈ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ

Антон ΠŸΠΎΠ»ΡƒΡ…ΠΈΠ½

РассказываСм ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅ ЯндСкс Go ΠΈ Π΅Π³ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ устройствС. Π”ΠΎΠΊΠ»Π°Π΄ Π±ΡƒΠ΄Π΅Ρ‚ интСрСсСн людям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² устройствС ΠΊΠΎΡ€ΡƒΡ‚ΠΈΠ½ΠΎΠ²Ρ‹Ρ… Π΄Π²ΠΈΠΆΠΊΠΎΠ² ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ асинхронных Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ². Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅:…

C++ Russia

53 min

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ компиляции. Π”Π°Π΅ΠΌ большС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ компилятору

ΠšΠΈΡ€ΠΈΠ»Π» Π’ΠΈΡ…ΠΎΠ½ΠΎΠ²

Π’ Π΄ΠΎΠΊΠ»Π°Π΄Π΅ Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны способы ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ компилятору ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ дСйствиях Π½Π°Π΄ Π½ΠΈΠΌΠΈ: ΠΎΡ‚ single compilation unit, link time optimization ΠΈ static initialization Π΄ΠΎ consteva…

C++ Russia

58 min

ABI compatibility is not a MAJOR problem

Javier GarcΓ­a Sogo

Too often, C++ developers tend to ignore ABI compatibility problems and think that incompatibilities are limited to changes in the interface of the library motivated by new features or bugs. However,…

C++ Siberia

72 min

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ рСсурсами: Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΡΠΏΠ΅ΡˆΠ°Ρ‚ Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ

Π’ΠΈΡ‚Π°Π»ΠΈΠΉ БрагилСвский

Как извСстно, языки программирования слабы Π² описании Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ. Они, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠΌΠΎΡ‡ΡŒ, Π½ΠΎ Π½Π΅ всСгда ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ содСрТат мноТСство ошибок, Ρ‡Ρ‚ΠΎ …

C++ Russia

51 min

НС слишком Π³Π»ΡƒΠΏΡ‹Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π² ClickHouse

АлСксСй Миловидов

ClickHouse β€” column-oriented DBMS. ΠšΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² ClickHouse ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ кусочками столбцов β€” массивами ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… срСднСго Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. Для управлСния рСсурсами для этих ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π±Ρ‹Π»ΠΎ …

C++ Russia

60 min

Initialisation in modern C++

Timur Doumler

Initialisation semantics is widely regarded as one of the most difficult aspects of the C++ language. We have many different kinds of initialisation and many different syntaxes for it, and they inter…

Tver.io

41 min

Wasm 101

Полина Гуртовая

БовсСм Π½Π΅ Ρ…Π°Ρ€Π΄ΠΊΠΎΡ€Π½ΠΎΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² WebAssembly. НапишСм Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° для стСковой Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, заглянСм ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ v8. И, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΌ Ρ‚ΠΎΡ‡Π½ΠΎ Π±Ρ‹Π»ΠΎ Π½Π΅ скучно, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ C++ ΠΈ Rust.

DotNext

60 min

ΠšΡ€ΠΎΡΡ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ взаимодСйствиС C# ΠΈ C++

Никита Π¦ΡƒΠΊΠ°Π½ΠΎΠ²

Π—Π°Π±ΡƒΠ΄Π΅ΠΌ уТасы C++/CLI ΠΈ рассмотрим Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρƒ. ΠŸΡ€ΠΈ всСй простотС использования Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ P/Invoke, ΠΎΠ½Π°, ΡƒΠ²Ρ‹, ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Π° лишь для использования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² C-стилС. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎβ€¦

DotNext

72 min

Unlocking performance improvements in .NET

Stephen Toub

. Performance is at the heart of .NET, with an incredible amount of energy invested in every release towards making the stack faster and more scalable. In this talk, Stephen Toub will walk through ex…

YaTalks

41 min

Под ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ Ρ€ΠΎΠ±ΠΎΡ‚Π°-доставщика

Π”ΠΌΠΈΡ‚Ρ€ΠΈΠΉ Π”ΠΎΠ±Ρ€Ρ‹Π½ΠΈΠ½

МногиС ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Ρ€ΠΎΠ±ΠΎΡ‚ΠΎΡ‚Π΅Ρ…Π½ΠΈΠΊΠΎΠΉ ΠΈ Ρ€ΠΎΠ±ΠΎΡ‚ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² Π·Π°Π΄Π°Ρ‡Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ послСднСй ΠΌΠΈΠ»ΠΈ ΠΏΠΎΠΊΠ° Π½Π΅Ρ‚ явного Π»ΠΈΠ΄Π΅Ρ€Π°, ΠΊΠ°ΠΊ Π½Π΅Ρ‚ ΠΈ общСпринятого стандарта, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΈ …