Telegram Group & Telegram Channel
πŸ–₯ less_slow.cpp β€” это ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ дСмонстрируСт ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ написания высокоэффСктивного ΠΊΠΎΠ΄Π° Π½Π° C++, C, CUDA, PTX ΠΈ ассСмблСрС.

ЦСль ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° β€” ΠΏΠΎΠΌΠΎΡ‡ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Ρ€Π°Π·Π²ΠΈΡ‚ΡŒ ΠΈΠ½Ρ‚ΡƒΠΈΡ†ΠΈΡŽ ΠΈ ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠ΅, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.​

πŸ” ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚Π΅ΠΌΡ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:
- ΠœΠΈΠΊΡ€ΠΎΠ±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈ: Π˜Π·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ слоТСниС Ρ†Π΅Π»Ρ‹Ρ… чисСл, с использованиСм Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ inline-ассСмблСр.

- ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌ ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ вычислСний: Анализ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ стандартных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² сортировки ΠΈ ΠΈΡ… оптимизация с использованиСм Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΈΠΊ.

- РСкурсия: Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ рСкурсивных ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ QuickSort, с Π°ΠΊΡ†Π΅Π½Ρ‚ΠΎΠΌ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ использованиС стСка.

- ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ стандартных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ: ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ускорСния стандартных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ std::sin, с использованиСм ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠΉ ΠΈ SIMD-инструкций.

- Π Π°Π±ΠΎΡ‚Π° с JSON: Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ парсинг JSON Π±Π΅Π· Π»ΠΈΡˆΠ½ΠΈΡ… Π°Π»Π»ΠΎΠΊΠ°Ρ†ΠΈΠΉ памяти, использованиС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ² стандартным Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ.​
GitHub
Hacker News

πŸ› οΈ Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ:
- ИспользованиС C++20 ΠΈ соврСмСнных компиляторов (GCC, Clang) для дСмонстрации Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй языка.

- Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с Google Benchmark для провСдСния Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

- ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° Π½Π° CUDA, PTX ΠΈ ассСмблСрС для дСмонстрации Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.

- ИспользованиС сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ fmt, range-v3, libunifex, cppcoro, liburing, oneTBB, ASIO, CUTLASS, CTRE, yyjson, Abseil, StringZilla ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.​

πŸ“š Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ рСсурсы:
ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ сСрии "Less Slow", которая Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° Rust ΠΈ Python.

Π‘Π»ΠΎΠ³ Π°Π²Ρ‚ΠΎΡ€Π° содСрТит ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΏΠΎ Ρ‚Π΅ΠΌΠ°ΠΌ, Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹ΠΌ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅: ashvardanian.com/tags/less-slow.​

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π³Π»ΡƒΠ±ΠΆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°Ρ‚ΡŒ эффСктивный ΠΊΠΎΠ΄ ΠΈ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ распространённых ошибок, less_slow.cpp станСт ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ практичСским пособиСм.

β–ͺGithub
β–ͺRust
β–ͺPython.


@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM



tg-me.com/cpluspluc/1038
Create:
Last Update:

πŸ–₯ less_slow.cpp β€” это ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ дСмонстрируСт ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ написания высокоэффСктивного ΠΊΠΎΠ΄Π° Π½Π° C++, C, CUDA, PTX ΠΈ ассСмблСрС.

ЦСль ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° β€” ΠΏΠΎΠΌΠΎΡ‡ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Ρ€Π°Π·Π²ΠΈΡ‚ΡŒ ΠΈΠ½Ρ‚ΡƒΠΈΡ†ΠΈΡŽ ΠΈ ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠ΅, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.​

πŸ” ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚Π΅ΠΌΡ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:
- ΠœΠΈΠΊΡ€ΠΎΠ±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈ: Π˜Π·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ слоТСниС Ρ†Π΅Π»Ρ‹Ρ… чисСл, с использованиСм Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ inline-ассСмблСр.

- ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌ ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ вычислСний: Анализ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ стандартных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² сортировки ΠΈ ΠΈΡ… оптимизация с использованиСм Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΈΠΊ.

- РСкурсия: Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ рСкурсивных ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ QuickSort, с Π°ΠΊΡ†Π΅Π½Ρ‚ΠΎΠΌ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ использованиС стСка.

- ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ стандартных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ: ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ускорСния стандартных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ std::sin, с использованиСм ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠΉ ΠΈ SIMD-инструкций.

- Π Π°Π±ΠΎΡ‚Π° с JSON: Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ парсинг JSON Π±Π΅Π· Π»ΠΈΡˆΠ½ΠΈΡ… Π°Π»Π»ΠΎΠΊΠ°Ρ†ΠΈΠΉ памяти, использованиС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ² стандартным Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ.​
GitHub
Hacker News

πŸ› οΈ Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ:
- ИспользованиС C++20 ΠΈ соврСмСнных компиляторов (GCC, Clang) для дСмонстрации Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй языка.

- Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с Google Benchmark для провСдСния Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

- ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° Π½Π° CUDA, PTX ΠΈ ассСмблСрС для дСмонстрации Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.

- ИспользованиС сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ fmt, range-v3, libunifex, cppcoro, liburing, oneTBB, ASIO, CUTLASS, CTRE, yyjson, Abseil, StringZilla ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.​

πŸ“š Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ рСсурсы:
ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ сСрии "Less Slow", которая Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° Rust ΠΈ Python.

Π‘Π»ΠΎΠ³ Π°Π²Ρ‚ΠΎΡ€Π° содСрТит ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΏΠΎ Ρ‚Π΅ΠΌΠ°ΠΌ, Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹ΠΌ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅: ashvardanian.com/tags/less-slow.​

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π³Π»ΡƒΠ±ΠΆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°Ρ‚ΡŒ эффСктивный ΠΊΠΎΠ΄ ΠΈ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ распространённых ошибок, less_slow.cpp станСт ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ практичСским пособиСм.

β–ͺGithub
β–ͺRust
β–ͺPython.


@cpluspluc

BY C++ Academy




Share with your friend now:
tg-me.com/cpluspluc/1038

View MORE
Open in Telegram


telegram Telegram | DID YOU KNOW?

Date: |

The messaging service and social-media platform owes creditors roughly $700 million by the end of April, according to people briefed on the company’s plans and loan documents viewed by The Wall Street Journal. At the same time, Telegram Group Inc. must cover rising equipment and bandwidth expenses because of its rapid growth, despite going years without attempting to generate revenue.

China’s stock markets are some of the largest in the world, with total market capitalization reaching RMB 79 trillion (US$12.2 trillion) in 2020. China’s stock markets are seen as a crucial tool for driving economic growth, in particular for financing the country’s rapidly growing high-tech sectors.Although traditionally closed off to overseas investors, China’s financial markets have gradually been loosening restrictions over the past couple of decades. At the same time, reforms have sought to make it easier for Chinese companies to list on onshore stock exchanges, and new programs have been launched in attempts to lure some of China’s most coveted overseas-listed companies back to the country.

telegram from us


Telegram C++ Academy
FROM USA