<bgdev />free

Вход Регистрация

Задача НЕ за интервю
7

0 1 2 3 4 ....13 14 15 16 17 ....28 29 30 31 32 33 34 35 36
#13493 (ツ) Delegate
Създадено на 02.10.2020, видяно: 1503 пъти.

Под Windows, да.

#13495 (ツ) johnfound
Създадено на 02.10.2020, видяно: 1497 пъти.
Delegate

Под Windows, да.

Всъщност да, мога да го повторя на Windows. Има някакъв проблем точно с Windows-ката версия, интересното е, че във WINE работи нормално. Ще се опитам да дебъгна, но с Windows-a ми е малко сложно...

#13499 (ツ) Delegate
Последно редактирано на 02.10.2020 от Delegate, видяно: 1489 пъти.

Малко модифицирах С-версията на Пайпа и при мен дава по-добри резултати сега. CPU:G1840/2.8Ghz

Оригинала

ds 99775 ol 100
0: 4 8968.431100 ms
1: 4 8069.468440 ms
2: 4 8980.419330 ms
3: 4 8979.220470 ms
4: 40 8971.888060 ms
5: 4 8069.415440 ms
6: 9 8972.812720 ms
7: 6 8971.225680 ms
8: 4 8969.875560 ms
9: 6 8073.109850 ms

С друга дистанс функция

ds 99775 ol 100
0: 4 4980.765750 ms
1: 4 4982.043070 ms
2: 4 4981.196810 ms
3: 4 4084.879320 ms
4: 40 4988.079010 ms
5: 4 4981.050080 ms
6: 9 4980.811110 ms
7: 6 4981.194600 ms
8: 4 4981.177410 ms
9: 6 4081.528070 ms

Има сорс и ехе за Windows

Attached files:
FileSizeUploadedDownloadsMD5 hash
leven_c.zip3473691 bytes02.10.2020111705d5c682a30489ebbe2f9eb61673bdc
#13525 (ツ) ФейкПрофил
Създадено на 02.10.2020, видяно: 1466 пъти.

В неговата версия липсват много оптимизации, дай един ръст сега

Attached files:
FileSizeUploadedDownloadsMD5 hash
bender.zip3419182 bytes02.10.20201143b5bb9dcc79573296ea2ec191d98989c
#13526 (ツ) ФейкПрофил
Създадено на 02.10.2020, видяно: 1464 пъти.
johnfound
Delegate

Под Windows, да.

Всъщност да, мога да го повторя на Windows. Има някакъв проблем точно с Windows-ката версия, интересното е, че във WINE работи нормално. Ще се опитам да дебъгна, но с Windows-a ми е малко сложно...

Не би ли трябвало асмеблера да работи еднакво на всякъде ?

#13535 (ツ) |
Създадено на 02.10.2020, видяно: 1442 пъти.
Delegate

Малко модифицирах С-версията на Пайпа и при мен дава по-добри резултати сега. CPU:G1840/2.8Ghz

Оригинала

ds 99775 ol 100
0: 4 8968.431100 ms
1: 4 8069.468440 ms
2: 4 8980.419330 ms
3: 4 8979.220470 ms
4: 40 8971.888060 ms
5: 4 8069.415440 ms
6: 9 8972.812720 ms
7: 6 8971.225680 ms
8: 4 8969.875560 ms
9: 6 8073.109850 ms

С друга дистанс функция

ds 99775 ol 100
0: 4 4980.765750 ms
1: 4 4982.043070 ms
2: 4 4981.196810 ms
3: 4 4084.879320 ms
4: 40 4988.079010 ms
5: 4 4981.050080 ms
6: 9 4980.811110 ms
7: 6 4981.194600 ms
8: 4 4981.177410 ms
9: 6 4081.528070 ms

Има сорс и ехе за Windows

В zip-a няма сорс.

#13539 (ツ) ФейкПрофил
Създадено на 02.10.2020, видяно: 1433 пъти.

Ръст с авх2:

  0|> Elapsed:   247; Distance:   4
  1|> Elapsed:   239; Distance:   4
  2|> Elapsed:   244; Distance:   4
  3|> Elapsed:   157; Distance:   4
  4|> Elapsed:   249; Distance:  40
  5|> Elapsed:   201; Distance:   4
  6|> Elapsed:   203; Distance:   9
  7|> Elapsed:   231; Distance:   6
  8|> Elapsed:   180; Distance:   4
  9|> Elapsed:   211; Distance:   6

Attached files:
FileSizeUploadedDownloadsMD5 hash
rust_avx.zip3419314 bytes02.10.20201170af3d7d92064d8ad6fe8649d5e1b8d22
#13544 (ツ) |
Създадено на 02.10.2020, видяно: 1423 пъти.
ФейкПрофил

Ръст с авх2:

  0|> Elapsed:   247; Distance:   4
  1|> Elapsed:   239; Distance:   4
  2|> Elapsed:   244; Distance:   4
  3|> Elapsed:   157; Distance:   4
  4|> Elapsed:   249; Distance:  40
  5|> Elapsed:   201; Distance:   4
  6|> Elapsed:   203; Distance:   9
  7|> Elapsed:   231; Distance:   6
  8|> Elapsed:   180; Distance:   4
  9|> Elapsed:   211; Distance:   6

На Epyc-а:

# FASM

0: Dist: 4, Time: 575 ms
1: Dist: 4, Time: 540 ms
2: Dist: 4, Time: 530 ms
3: Dist: 4, Time: 14 ms
4: Dist: 40, Time: 407 ms
5: Dist: 4, Time: 181 ms
6: Dist: 9, Time: 257 ms
7: Dist: 6, Time: 305 ms
8: Dist: 4, Time: 93 ms
9: Dist: 6, Time: 273 ms
10: Dist: 58, Time: 330 ms


# Rust

  0|> Elapsed:   537; Distance:   4
  1|> Elapsed:   528; Distance:   4
  2|> Elapsed:   525; Distance:   4
  3|> Elapsed:   324; Distance:   4
  4|> Elapsed:   372; Distance:  40
  5|> Elapsed:   250; Distance:   4
  6|> Elapsed:   244; Distance:   9
  7|> Elapsed:   270; Distance:   6
  8|> Elapsed:   220; Distance:   4
  9|> Elapsed:   252; Distance:   6
 10|> Elapsed:   288; Distance:  58

Асемблерската версия все още крашва на Интел-а.

Иначе сега се опитвам да направя GPU версията да използва SIMD (защото GPU-то има и такива инструкции :)

#13546 (ツ) ФейкПрофил
Създадено на 02.10.2020, видяно: 1419 пъти.

Много бавен този епик. Моя 5 годишен лаптоп вади по-малки времена.

#13547 (ツ) |
Последно редактирано на 02.10.2020 от |, видяно: 1418 пъти.
ФейкПрофил

Много бавен този епик. Моя 5 годишен лаптоп вади по-малки времена.

Има ли 64 ядра? :)

Иначе на моя лаптоп:


  0|> Elapsed:   184; Distance:   4
  1|> Elapsed:   180; Distance:   4
  2|> Elapsed:   179; Distance:   4
  3|> Elapsed:   136; Distance:   4
  4|> Elapsed:   185; Distance:  40
  5|> Elapsed:   159; Distance:   4
  6|> Elapsed:   162; Distance:   9
  7|> Elapsed:   174; Distance:   6
  8|> Elapsed:   143; Distance:   4
  9|> Elapsed:   161; Distance:   6
 10|> Elapsed:   183; Distance:  58
#13584 (ツ) gat3way
Създадено на 02.10.2020, видяно: 1396 пъти.

Това с векторизацията на теслата доста вероятно ще доведе до противоречив, вероятно по-лош резултат. Аз дори съм учуден че има вектори в кудата, в опенцл-а има защото е за различна железария - от процесори през FPGA до видеокарти, там някои платформи си имат реално хардуерни SIMD регистри отдолу. Нвидията няма (АМД имаха в по-старите архитектури, ма ги махнаха). Тоест от векторни операции няма да намажеш абсолютно нищо, просто защото компилатора ще ги сведе до n на броя скаларни, които ще подкара една след друга. Обаче в един частен случай има файда от това дори при това положение - при достъпването на памет. Това е защото хардуера позволява наведнъж да се чете повече памет, сега колко точно не помня, но определено е повече от един int на workitem. И тогава, от четенето от векторен буфер във векторна променлива има файда. От друга страна, това ще ти вдигне бройката регистри, които ползва кернела и съответно ще имаш по-ниско occupancy. Та като цяло дали ще намажеш или не е въпрос на експерименти.

#13586 (ツ) johnfound
Създадено на 02.10.2020, видяно: 1388 пъти.
ФейкПрофил

Не би ли трябвало асмеблера да работи еднакво на всякъде ?

Безспорно. Това си е бъг. Но ми е трудно да го дебъгвам, защото нямам Windows, а под Wine всичко работи нормално...

#13589 (ツ) Евлампи
Създадено на 02.10.2020, видяно: 1382 пъти.
johnfound

защото нямам Windows

Я, колко сме в тоя клуб тука?

Рабин ИМА уиндоус (краден) и го ползва, да мълчи иззад козовръза

#13595 (ツ) |
Създадено на 02.10.2020, видяно: 1373 пъти.
gat3way

Това с векторизацията на теслата доста вероятно ще доведе до противоречив, вероятно по-лош резултат. Аз дори съм учуден че има вектори в кудата, в опенцл-а има защото е за различна железария - от процесори през FPGA до видеокарти, там някои платформи си имат реално хардуерни SIMD регистри отдолу. Нвидията няма (АМД имаха в по-старите архитектури, ма ги махнаха). Тоест от векторни операции няма да намажеш абсолютно нищо, просто защото компилатора ще ги сведе до n на броя скаларни, които ще подкара една след друга. Обаче в един частен случай има файда от това дори при това положение - при достъпването на памет. Това е защото хардуера позволява наведнъж да се чете повече памет, сега колко точно не помня, но определено е повече от един int на workitem. И тогава, от четенето от векторен буфер във векторна променлива има файда. От друга страна, това ще ти вдигне бройката регистри, които ползва кернела и съответно ще имаш по-ниско occupancy. Та като цяло дали ще намажеш или не е въпрос на експерименти.

Опитвам се да използвам разните intrinsics като vminu4, не знам точно до какъв код ще доведат.

#13689 (ツ) bvbfan
Създадено на 03.10.2020, видяно: 1351 пъти.
|

Има ли 64 ядра? :)

Пробвал ли си с 60-на нишки?

#13690 (ツ) bvbfan
Последно редактирано на 03.10.2020 от bvbfan, видяно: 1350 пъти.
ФейкПрофил

Абе това trie колко памет харчи ? Аз се заиграх, но ми заема 2ГБ :(

Харчи (виж prefix/radix trie) също както и непрекъснатото зареждане при всяко пускане на програмата, но Пайп-а не иска да разисква тоя въпрос, защото компенсира със смятането на гпу и неглижира проблема.

#13692 (ツ) |
Създадено на 03.10.2020, видяно: 1341 пъти.
bvbfan
ФейкПрофил

Абе това trie колко памет харчи ? Аз се заиграх, но ми заема 2ГБ :(

Харчи (виж prefix/radix trie) също както и непрекъснатото зареждане при всяко пускане на програмата, но Пайп-а не иска да разисква тоя въпрос, защото компенсира със смятането на гпу и неглижира проблема.

Какъв е проблема с паметта? Трай за примерния dataset ima 12 милиона nodes и отнема около 512 MB памет. И за какво непрекъснато зареждане става въпрос? Всеки път го изграждам в паметта.

#13693 (ツ) |
Създадено на 03.10.2020, видяно: 1338 пъти.
bvbfan
|

Има ли 64 ядра? :)

Пробвал ли си с 60-на нишки?

Пробвах програмата на John с 256 (компютъра има 2 процессора * 64 ядра * 2 заради SMT) едновременни изпълнения да видя дали ще има някакво забавяне във времената. И да е имало, не беше забележимо.

#13697 (ツ) bvbfan
Последно редактирано на 03.10.2020 от bvbfan, видяно: 1334 пъти.
|

Какъв е проблема с паметта? Трай за примерния dataset ima 12 милиона nodes и отнема около 512 MB памет. И за какво непрекъснато зареждане става въпрос? Всеки път го изграждам в паметта.

Всеки път се чете от файл и се зарежда в дърво, при всяко стартиране - това е проблем. Идеята на дб-тата е да се зарежда само нужната информация, евентуално да се кешира. При само 512MB наистина са малко и все още не е проблем. Като стане GiB зареждането ще усетиш и забавяне. Какъв е точно по вид е трая? Валидация правиш ли?

#13698 (ツ) |
Създадено на 03.10.2020, видяно: 1330 пъти.
bvbfan
|

Какъв е проблема с паметта? Трай за примерния dataset ima 12 милиона nodes и отнема около 512 MB памет. И за какво непрекъснато зареждане става въпрос? Всеки път го изграждам в паметта.

Всеки път се чете от файл и се зарежда в дърво, при всяко стартиране - това е проблем. Идеята на дб-тата е да се зарежда само нужната информация, евентуално да се кешира. Какъв е точно по вид е трая?

ЦЯЛАТА информация е нужна в случая. Колко пъти още трябва да се повтори за да го схванеш?

Trie-а е най-елементарния възможен.

0 1 2 3 4 ....13 14 15 16 17 ....28 29 30 31 32 33 34 35 36

Задача НЕ за интервю
7

AsmBB v3.0 (check-in: a316dab8b98d07d9); SQLite v3.42.0 (check-in: 831d0fb2836b71c9);
©2016..2023 John Found; Licensed under EUPL. Powered by Assembly language Created with Fresh IDE