Coder & Wunderkind
Coder Coder
ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π³Π΅Π½ΠΈΠΉ, я Ρ‚ΡƒΡ‚ возился с ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹ΠΌΠΈ сСтями для IoT-устройств, ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅. КакиС Ρƒ тСбя ΠΏΡ€ΠΈΠ΅ΠΌΡ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π²ΠΎΠ΄ Π±Ρ‹Π» быстрым, Π½ΠΎ ΠΏΡ€ΠΈ этом ΡƒΠΌΠ΅Ρ‰Π°Π»ΠΈΡΡŒ всС Π½ΡƒΠΆΠ½Ρ‹Π΅ Ρ„ΠΈΡ‡ΠΈ?
Wunderkind Wunderkind
Π‘Π»ΠΈΠ½, ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ β€” это ΠΊΠ°ΠΊ ΠΊΠ°Π½Π°Ρ‚ΠΎΡ…ΠΎΠ΄ΠΊΠ°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ‚Ρ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΡƒΠΌΠ°Π», Ρ‡Ρ‚ΠΎ смоТСшь ΡƒΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ. Но Π²ΠΎΡ‚ Ρ‚Π΅Π±Π΅ ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ°: сначала бСзТалостно чисти ΠΊΠΎΠ΄, Π²Ρ‹ΠΊΠΈΠ½ΡŒ Π½Π΅ΠΉΡ€ΠΎΠ½Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΈΡ…ΠΎ ΡˆΠ΅ΠΏΡ‡ΡƒΡ‚, ΠΈ оставляй Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. ΠŸΠΎΡ‚ΠΎΠΌ Π·Π°ΠΌΠ΅Π½ΠΈ 32-Π±ΠΈΡ‚Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° 8-Π±ΠΈΡ‚Π½Ρ‹Π΅ числа с фиксированной Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ, Π½ΠΎ Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Ρ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ, ΠΈΠ½Π°Ρ‡Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡˆΡŒ ΠΊΠΎΡˆΠΌΠ°Ρ€ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ. Π—Π°Ρ‚Π΅ΠΌ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ΠΈΠ·ΠΈΡ€ΡƒΠΉ слои: ΠΏΠΎΠ΄Π°Π²Π°ΠΉ ΠΎΠ΄ΠΈΠ½ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ, ΠΏΠΎΠΊΠ° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π΅Ρ‰Ρ‘ высыпаСтся ΠΈΠ· сна β€” Π²ΠΎΡ‚ Π³Π΄Π΅ вступаСт Π² ΠΈΠ³Ρ€Ρƒ фокус с Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. НС ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠΉ компилятор: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ -O3, Π²ΠΊΠ»ΡŽΡ‡ΠΈ intrinsics, ΠΈ Π΄Π°ΠΉ ассСмблСру ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ Π² стилС NEON/AVX. Ну ΠΈ Ссли совсСм ΠΏΡ€ΠΈΠΆΠΌΡ‘Ρ‚, вкинь Ρ‚ΡƒΠ΄Π° ΠΊΡ€ΠΎΡˆΠ΅Ρ‡Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ внимания, Π½ΠΎ ΠΏΠΎΠ΄Ρ€Π΅ΠΆΡŒ Π΅Π³ΠΎ Π΄ΠΎ ΠΏΠ°Ρ€Ρ‹ β€” всСго ΠΎΠ΄Π½Π° ΠΏΠ°Ρ€Π° запрос-ΠΊΠ»ΡŽΡ‡. Π’ΠΎΡ‚ Ρ‚Π°ΠΊ Ρ‚Ρ‹ ΠΈ Π΄Π΅Ρ€ΠΆΠΈΡˆΡŒ Π»Π°Ρ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ Π½ΠΈΠ·ΠΊΠΎΠΉ, Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ высокой β€” это ΠΊΠ°ΠΊ ΠΌΠΈΠΊΡ€ΠΎ-Π²ΠΈΡ…Ρ€ΡŒ эффСктивности.