tgoop.com Β»
United States Β»
π ΠΠ°ΠΏΠΈΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ΡΠ° Β»
Telegram web Β»
Post 225
ΠΡΡ ΠΎΠ΄ΠΈΠ½ Π²ΡΡΠ°ΡΠΎ-ΡΠ΅ΡΡ - ΡΡΠΈΡΠ°Π΅ΠΌ StdDev.
Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ±ΡΡΠ½ΡΠΌ LINQ ΠΈ Vector256 - Π² ΡΠ°Π·Ρ Π½Π° ΠΌΠ°Π»Π΅Π½ΡΠΊΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΈ Π΄Π²Π° ΠΏΠΎΡΡΠ΄ΠΊΠ° Π½Π° Π±ΠΎΠ»ΡΡΠΎΠΉ (gist, .net 7)
ΠΠ»Ρ ΡΠ΅Ρ ΠΊΡΠΎ Π½Π΅ ΠΏΠΎΠ½ΡΠ» ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Average:
* Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΠΏΠΎ 4 double Π² Π²Π΅ΠΊΡΠΎΡ (256 Π±ΠΈΡ / 8 Π±Π°ΠΉΡ (64 Π±ΠΈΡΠ°) ΠΎΠ΄ΠΈΠ½ double = 4 ΡΡΡΠΊΠΈ Π²Π»Π΅Π·Π°Π΅Ρ Π² 1 Π²Π΅ΠΊΡΠΎΡ)
* Π½Π°Π΄ Π½ΠΈΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Avx.Add - Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΊ Π²Π΅ΠΊΡΠΎΡΡ-Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ Π²Π΅ΠΊΡΠΎΡ Ρ 4 ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ double (Vector256.Load Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π²Π΅ΠΊΡΠΎΡ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ 4 double ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ pointer)
* ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΡ ΠΎΠ΄Π° ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ - ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΠΌ 4 ΡΡΡΠΊΠΈ double ΠΈΠ· vsum - ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΏΠΎΠ»Π½ΡΡ ΡΡΠΌΠΌΡ Π²ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
* Π΄Π΅Π»ΠΈΠΌ Π½Π° src.Count - ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΡΠ΅Π΄Π½Π΅Π΅ ΠΈΠ· ΡΠ΅Π³ΠΎ ΡΠΎΡΠΌΠΈΡΡΠ΅ΠΌ Π½ΠΎΠ²ΡΠΉ Π²Π΅ΠΊΡΠΎΡ vectorMean - ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ 4 ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΠ²ΠΎΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ .
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎ 4 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° - Π΄Π΅Π»Π°Π΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ
ΠΡΠ»ΠΈ Π±Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π±ΡΠ»Π° Π½Π°Π΄ float - ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π² 256 Π±ΠΈΡ ΡΠ»ΠΎΠΆΠΈΡΡ ΡΡΠ°Π·Ρ ΠΏΠΎ 8 float'ΠΎΠ²: 256 Π±ΠΈΡ / 4 Π±Π°ΠΉΡΠ° (32 Π±ΠΈΡΠ°) float
#csharp #avx
Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ±ΡΡΠ½ΡΠΌ LINQ ΠΈ Vector256 - Π² ΡΠ°Π·Ρ Π½Π° ΠΌΠ°Π»Π΅Π½ΡΠΊΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΈ Π΄Π²Π° ΠΏΠΎΡΡΠ΄ΠΊΠ° Π½Π° Π±ΠΎΠ»ΡΡΠΎΠΉ (gist, .net 7)
ΠΠ»Ρ ΡΠ΅Ρ ΠΊΡΠΎ Π½Π΅ ΠΏΠΎΠ½ΡΠ» ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Average:
* Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΠΏΠΎ 4 double Π² Π²Π΅ΠΊΡΠΎΡ (256 Π±ΠΈΡ / 8 Π±Π°ΠΉΡ (64 Π±ΠΈΡΠ°) ΠΎΠ΄ΠΈΠ½ double = 4 ΡΡΡΠΊΠΈ Π²Π»Π΅Π·Π°Π΅Ρ Π² 1 Π²Π΅ΠΊΡΠΎΡ)
* Π½Π°Π΄ Π½ΠΈΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Avx.Add - Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΊ Π²Π΅ΠΊΡΠΎΡΡ-Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ Π²Π΅ΠΊΡΠΎΡ Ρ 4 ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ double (Vector256.Load Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π²Π΅ΠΊΡΠΎΡ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ 4 double ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ pointer)
* ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΡ ΠΎΠ΄Π° ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ - ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΠΌ 4 ΡΡΡΠΊΠΈ double ΠΈΠ· vsum - ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΏΠΎΠ»Π½ΡΡ ΡΡΠΌΠΌΡ Π²ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
* Π΄Π΅Π»ΠΈΠΌ Π½Π° src.Count - ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΡΠ΅Π΄Π½Π΅Π΅ ΠΈΠ· ΡΠ΅Π³ΠΎ ΡΠΎΡΠΌΠΈΡΡΠ΅ΠΌ Π½ΠΎΠ²ΡΠΉ Π²Π΅ΠΊΡΠΎΡ vectorMean - ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ 4 ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΠ²ΠΎΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ .
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎ 4 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° - Π΄Π΅Π»Π°Π΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ
Sum( (p-mean) * (p-mean) )
ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΡΠΎΠΌ Π΄Π΅Π»ΠΈΡΡΡ Π½Π° src.Count ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Average.ΠΡΠ»ΠΈ Π±Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π±ΡΠ»Π° Π½Π°Π΄ float - ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π² 256 Π±ΠΈΡ ΡΠ»ΠΎΠΆΠΈΡΡ ΡΡΠ°Π·Ρ ΠΏΠΎ 8 float'ΠΎΠ²: 256 Π±ΠΈΡ / 4 Π±Π°ΠΉΡΠ° (32 Π±ΠΈΡΠ°) float
#csharp #avx
π2
tgoop.com/notes_of_programmer/225
Create:
Last Update:
Last Update:
ΠΡΡ ΠΎΠ΄ΠΈΠ½ Π²ΡΡΠ°ΡΠΎ-ΡΠ΅ΡΡ - ΡΡΠΈΡΠ°Π΅ΠΌ StdDev.
Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ±ΡΡΠ½ΡΠΌ LINQ ΠΈ Vector256 - Π² ΡΠ°Π·Ρ Π½Π° ΠΌΠ°Π»Π΅Π½ΡΠΊΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΈ Π΄Π²Π° ΠΏΠΎΡΡΠ΄ΠΊΠ° Π½Π° Π±ΠΎΠ»ΡΡΠΎΠΉ (gist, .net 7)
ΠΠ»Ρ ΡΠ΅Ρ ΠΊΡΠΎ Π½Π΅ ΠΏΠΎΠ½ΡΠ» ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Average:
* Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΠΏΠΎ 4 double Π² Π²Π΅ΠΊΡΠΎΡ (256 Π±ΠΈΡ / 8 Π±Π°ΠΉΡ (64 Π±ΠΈΡΠ°) ΠΎΠ΄ΠΈΠ½ double = 4 ΡΡΡΠΊΠΈ Π²Π»Π΅Π·Π°Π΅Ρ Π² 1 Π²Π΅ΠΊΡΠΎΡ)
* Π½Π°Π΄ Π½ΠΈΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Avx.Add - Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΊ Π²Π΅ΠΊΡΠΎΡΡ-Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ Π²Π΅ΠΊΡΠΎΡ Ρ 4 ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ double (Vector256.Load Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π²Π΅ΠΊΡΠΎΡ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ 4 double ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ pointer)
* ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΡ ΠΎΠ΄Π° ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ - ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΠΌ 4 ΡΡΡΠΊΠΈ double ΠΈΠ· vsum - ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΏΠΎΠ»Π½ΡΡ ΡΡΠΌΠΌΡ Π²ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
* Π΄Π΅Π»ΠΈΠΌ Π½Π° src.Count - ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΡΠ΅Π΄Π½Π΅Π΅ ΠΈΠ· ΡΠ΅Π³ΠΎ ΡΠΎΡΠΌΠΈΡΡΠ΅ΠΌ Π½ΠΎΠ²ΡΠΉ Π²Π΅ΠΊΡΠΎΡ vectorMean - ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ 4 ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΠ²ΠΎΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ .
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎ 4 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° - Π΄Π΅Π»Π°Π΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ
ΠΡΠ»ΠΈ Π±Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π±ΡΠ»Π° Π½Π°Π΄ float - ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π² 256 Π±ΠΈΡ ΡΠ»ΠΎΠΆΠΈΡΡ ΡΡΠ°Π·Ρ ΠΏΠΎ 8 float'ΠΎΠ²: 256 Π±ΠΈΡ / 4 Π±Π°ΠΉΡΠ° (32 Π±ΠΈΡΠ°) float
#csharp #avx
Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ±ΡΡΠ½ΡΠΌ LINQ ΠΈ Vector256 - Π² ΡΠ°Π·Ρ Π½Π° ΠΌΠ°Π»Π΅Π½ΡΠΊΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΈ Π΄Π²Π° ΠΏΠΎΡΡΠ΄ΠΊΠ° Π½Π° Π±ΠΎΠ»ΡΡΠΎΠΉ (gist, .net 7)
ΠΠ»Ρ ΡΠ΅Ρ ΠΊΡΠΎ Π½Π΅ ΠΏΠΎΠ½ΡΠ» ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Average:
* Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΠΏΠΎ 4 double Π² Π²Π΅ΠΊΡΠΎΡ (256 Π±ΠΈΡ / 8 Π±Π°ΠΉΡ (64 Π±ΠΈΡΠ°) ΠΎΠ΄ΠΈΠ½ double = 4 ΡΡΡΠΊΠΈ Π²Π»Π΅Π·Π°Π΅Ρ Π² 1 Π²Π΅ΠΊΡΠΎΡ)
* Π½Π°Π΄ Π½ΠΈΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Avx.Add - Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΊ Π²Π΅ΠΊΡΠΎΡΡ-Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ Π²Π΅ΠΊΡΠΎΡ Ρ 4 ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ double (Vector256.Load Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π²Π΅ΠΊΡΠΎΡ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ 4 double ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ pointer)
* ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΡ ΠΎΠ΄Π° ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ - ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΠΌ 4 ΡΡΡΠΊΠΈ double ΠΈΠ· vsum - ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΏΠΎΠ»Π½ΡΡ ΡΡΠΌΠΌΡ Π²ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
* Π΄Π΅Π»ΠΈΠΌ Π½Π° src.Count - ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΡΠ΅Π΄Π½Π΅Π΅ ΠΈΠ· ΡΠ΅Π³ΠΎ ΡΠΎΡΠΌΠΈΡΡΠ΅ΠΌ Π½ΠΎΠ²ΡΠΉ Π²Π΅ΠΊΡΠΎΡ vectorMean - ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ 4 ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΠ²ΠΎΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ .
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎ 4 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° - Π΄Π΅Π»Π°Π΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ
Sum( (p-mean) * (p-mean) )
ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΡΠΎΠΌ Π΄Π΅Π»ΠΈΡΡΡ Π½Π° src.Count ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Average.ΠΡΠ»ΠΈ Π±Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π±ΡΠ»Π° Π½Π°Π΄ float - ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π² 256 Π±ΠΈΡ ΡΠ»ΠΎΠΆΠΈΡΡ ΡΡΠ°Π·Ρ ΠΏΠΎ 8 float'ΠΎΠ²: 256 Π±ΠΈΡ / 4 Π±Π°ΠΉΡΠ° (32 Π±ΠΈΡΠ°) float
#csharp #avx
BY π ΠΠ°ΠΏΠΈΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ΡΠ°


Share with your friend now:
tgoop.com/notes_of_programmer/225