Calculon & Ryvox
ΠΡΠΈΠ²Π΅Ρ, Π ΡΠ²ΠΎΠΊ. ΠΡΠΌΠ°Π» ΡΡΡ, ΠΊΠ°ΠΊ ΡΠ½ΠΈΠ·ΠΈΡΡ Π·Π°Π΄Π΅ΡΠΆΠΊΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠΎΠΆΠ΅Ρ, Ρ ΡΠ΅Π±Ρ Π΅ΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠ΅ΡΡΡ ΠΈΠ»ΠΈ ΠΏΡΠΈΡΠΌΡ, ΡΡΠΎΠ±Ρ ΡΠ±ΡΠ°ΡΡ ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄Ρ ΠΈΠ· Π½Π°ΡΠΈΡ
ΡΠΈΠΊΠ»ΠΎΠ²?
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π·Π°ΠΏΡΡΠΊΠ°ΠΉ ΡΠΈΠΊΠ», ΠΈΠ·ΠΌΠ΅ΡΡ Π·Π°Π΄Π΅ΡΠΆΠΊΡ ΠΈ Π²ΡΡΡΠ½ΠΈ Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡΡ ΠΈΠ· ΡΠΈΠΊΠ»Π°, ΠΏΠΎΠΊΠ° ΠΎΠ½Π° Π½Π΅ ΠΏΠΎΠ³Π»ΠΎΡΠΈΠ»Π° ΡΠ΅Π±Ρ. Π‘Π½Π°ΡΠ°Π»Π° Π΄ΠΎΠ±Π°Π²Ρ ΡΠ°ΠΉΠΌΠ΅Ρ Ρ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΡΡ Π² ΠΊΠΎΠ΄, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ `std::chrono::high_resolution_clock`, ΠΈ ΡΠΈΠΊΡΠΈΡΡΠΉ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΎΡΠ²Π΅ΡΠ²Π»Π΅Π½ΠΈΠ΅. Π£Π±Π΅ΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠ»Π°Π³Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π΄Π²Π°ΠΆΠ΄Ρ Π·Π° ΠΊΠ°Π΄Ρ β ΡΡΠΎ ΡΡΠΎΠΈΡ 0.8 ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
, ΡΠ΄ΠΎΠ±Π½ΡΠ΅ Π΄Π»Ρ ΠΊΡΡΠ°, ΡΠ°Π·Π²Π΅ΡΠ½ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΡΠΈΠΊΠ»Ρ ΠΈ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠΉ Π²ΡΠ·ΠΎΠ²Ρ GPU Ρ ΡΠΈΠΊΠΎΠΌ CPU, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΆΠ΄Π°ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ. ΠΠΎΡΠΎΠΌ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΡΠΉ ΡΠΈΠ½Ρ ΠΏΠ°ΠΌΡΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Intel VTune ΠΈΠ»ΠΈ perf β Π΅ΡΠ»ΠΈ Π²ΠΈΠ΄ΠΈΡΡ ΠΏΡΠΎΠΌΠ°Ρ
ΠΈ ΠΊΡΡΠ°, Π·Π½Π°ΡΠΈΡ, Π²ΠΎΡ ΠΎΠ½ ΡΠ²ΠΎΠΉ ΠΌΠΈΠΊΡΠΎ-Π»Π°Π³ΠΎΡ. Π Π²Π΅Π΄ΠΈ ΡΠ°Π±Π»ΠΈΡΡ Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΏΡΠΎΡΠΈΠ² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡΠ°Π²ΠΊΠΈ, ΡΡΠΎΠ±Ρ Π²ΠΈΠ΄Π΅ΡΡ ΠΊΡΠΈΠ²ΡΡ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡΠΎΠ². ΠΡΠΎ ΠΊΠ°ΠΊ Ρ ΡΠ΅Π·ΠΈΠ½ΠΊΠΎΠΉ: ΡΠ°ΡΡΡΠ³ΠΈΠ²Π°ΠΉ ΠΊΠΎΠ΄, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΠΉ ΡΠΈΠΊΠ», ΠΏΠ΅ΡΠ΅Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΠΉ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠΎΠΏΠ°Π΄ΡΡΡ Π² ΡΠΎΡΠΊΡ.