<bgdev />free

| |  


All tags 2023 9may ai algorithm alpha amd american api argon2 arm asm asmbb assembler attachment awareness balgaria bay888 bcrypt bender beta bgdev-next bgdev-next.👍 big.data bitchnigga bitcoin bmw boi borg brexit bug bulgaria business c cad chat cloud computer-names console crossorigin deprivation desktop dna dotnet email eupl falling feature forum foundation fp fresh fun game gcc github goats google gpl gpt gpt.3.5 gypsies happiness harvard hash improvement include investment it java javascript js kleta kleta.maqka.balg lambi language learning leftovers legend level levenshtein.dist libx license linkedlist linux m0 ma mcafee mele microsoft minimag minimalism negro net nginx nigga not.a.bug oop paradigm parler patterns perception persuasion pipe play.station politics populi pornhub pow pro programming protonmail python reba rust sci-fi scripting seks seo server shell sleep smartbeauty soft-skills sqlite srabska sse starship sugerface syntax tablet tailwindcss telegram theme thug troll80lvl tutanota typescript uacme ui uk unix untermensch upload uptime usa utilities ux vb via viber virtual.reality vox vps vulnerable war wasm weapons-grade web windows word x86 xbox xss youtube zig ziglang Übermensch БОКЕБЪЛГАРИН БЪ БЪлгария Белезниците Били Били.Белезниците БялДонор Веган Виста Възраждане ГЛУПАК Гана Глиста ЕС Казарма Копейкин Мода.и.овча.мисъ НЕКАДЪРНИК НРБ ПО-ЗЛЕ.И.ОТ.РАБИ Подкасти Разни Румен СИК СКУМ СетенЧук Скум ТИР Туче Украйна Урсула Яначков авангард аз айфонджия алгоритми амбиции анархизъм антиваксъри армения аудио аутисти бази.данни бакъп без без.пръчове безпросвета бенчмарк биготи биомаса бира боклук борисов ботев брадва булшит бъг бъгове бял ваксина вандал век венерика викинги вицове вишу война вървежен гана ганорник гей гейщина германия герои гешев глупак говеда групировка гюбек данъкоплатец двойни.стандарти дедотия демокрация дизайн дисциплина добитък докери долар донори држава дришльо дрон ебане еврогейски.съюз езици експеримент електроника електроника.s2 емиграция ендпойнт енум ерген ергономия жалкар задача затоплизъм защита здраве златен злато игри идеали идиократ идиократи идиокрация идиот избори избори.рабин изкуство икономика имбецили имейл инвестиране инокулация инструмента интервю ипад искам.да.си.реда казах камшикодържач капитализъм карабах караница картечница кино клавиатура ковид19 колайдер колям.кур комари комплексар комунизъм консолидация конспирации космонавтика кофа кофит-19 краставица криптовалути курви кучелюбци лайно лаладжия лаптоп либерастия литература лоши.практики луд лъжеучени лъжец любов майни майтапи малоумници мафия мениджмънт месо местене метавселена метафизика механика мистика мисъл мода мода.овча.мисъл модерация морал мутра мутри наука национализъм не.it негър некадърник некадърници неон нидерландия овча овчи олигофрени организация офтопик парички партия педал пенджури пенсия пишока плюскане победа погромист поезия политика порно посредствен почивка празници прасе превод предалщина програмиране проект проста простотии против.правилата проф пръч пръч.дришльо пръчка психика психични.болести психология пустиняк путин путката путьо рабин рабин.е.шибан.пе работа радост разврат разни разработка расизъм резерват рейтинг реклама рекламен религия рест ризи ропче ропчета русия руски.език рутина самоковска сасипаха секира село селяндур сериали сериозно.програм сетен сеянин симулация скопяване скръм слушалки сортиране софия софтуер софтуни социализъм спектрометър спринтове сране стандарти стил стуйо стюи сушилня сцена съвет съм сън сървър сърничка таб ташаци телевизия тема територията терминология термояд технологии титли традиция тролинг тръмп туба туче тъпак тъпанари тъпня уиндоус украйна умнокрасивци фалит фантастика фашизъм фейк.акаунти физика филми форум форумни.проекти футбол хазарт хамали харабия хардуер хахаха хомофобия хостинг храна хумор цайко цайси целофан цензура цензурра циганин чалга чалгар чекии чернокраки честота чипове чнг чужбина чук шпация щайга юан яката яко ям 🔨 😂 🪓


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

  

0 1 2 3 4 ...14 15 16 17 18 ...31 32 33 34 35 36


  BIGBUGEX  Създадено на 06.10.2020, видяно: 1968 пъти. #14040

Old:

0: Dist: 4, Time: 288 ms
1: Dist: 4, Time: 270 ms
2: Dist: 4, Time: 280 ms
3: Dist: 4, Time: 9 ms
4: Dist: 40, Time: 285 ms
5: Dist: 4, Time: 157 ms
6: Dist: 9, Time: 243 ms
7: Dist: 6, Time: 289 ms
8: Dist: 4, Time: 88 ms
9: Dist: 6, Time: 258 ms

New:

0: Dist: 4, Time: 86 ms
1: Dist: 4, Time: 80 ms
2: Dist: 4, Time: 83 ms
3: Dist: 4, Time: 3 ms
4: Dist: 40, Time: 84 ms
5: Dist: 4, Time: 47 ms
6: Dist: 9, Time: 72 ms
7: Dist: 6, Time: 86 ms
8: Dist: 4, Time: 26 ms
9: Dist: 6, Time: 77 ms


  BIGBUGEX  Последно редактирано на 06.10.2020 от BIGBUGEX, видяно: 1963 пъти. #14041
johnfound
BIGBUGEX

Windows има по-добрата конвенция на извикване в 64 битов режим.

М-м-м-м, много спорно. Още повече пък относно точно тази програма. Конвенциите за викане касаят само системните функции, които тука не играят никаква роля. А в твоя код можеш да си правиш каквото си искаш на която и да е операционна система.

Не е съвсем така. В 64 битов режим стека винаги трябва да е подравнен до 16 при извикване на чуждо апи. И има само една конвенция на извикване за операционната система. Всички апита я спазват.



  johnfound  Създадено на 06.10.2020, видяно: 1961 пъти. #14042
BIGBUGEX

Old:

0: Dist: 4, Time: 288 ms
1: Dist: 4, Time: 270 ms
2: Dist: 4, Time: 280 ms
3: Dist: 4, Time: 9 ms
4: Dist: 40, Time: 285 ms
5: Dist: 4, Time: 157 ms
6: Dist: 9, Time: 243 ms
7: Dist: 6, Time: 289 ms
8: Dist: 4, Time: 88 ms
9: Dist: 6, Time: 258 ms

New:

0: Dist: 4, Time: 86 ms
1: Dist: 4, Time: 80 ms
2: Dist: 4, Time: 83 ms
3: Dist: 4, Time: 3 ms
4: Dist: 40, Time: 84 ms
5: Dist: 4, Time: 47 ms
6: Dist: 9, Time: 72 ms
7: Dist: 6, Time: 86 ms
8: Dist: 4, Time: 26 ms
9: Dist: 6, Time: 77 ms

Да-а-а, интересно – същият ефект. А са променени само 3 инструкции и премахнато едно четене от паметта, което по принцип би трябвало да е кеширано (и явно на Интелските процесори е):

 .loop1:
         mov       edx, [.len16]

         movdqa    xmm3, [ebx + edx]
         movdqa    xmm2, xmm3
+        movdqa    xmm5, xmm3
         paddb     xmm3, xmm1
         movdqa    [ebx + edx], xmm3

         mov       al, [edi]
         lea       edi, [edi+1]

         mov       ah, al
         movd      xmm0, eax
         punpcklbw xmm0, xmm0
         punpcklbw xmm0, xmm0
         punpcklbw xmm0, xmm0

         mov       esi, [.pString16]

 .loop2:
         sub       edx, 16

         movdqa    xmm3, [esi]
.................................................................
         lea       esi, [esi+16]

         pcmpeqb   xmm3, xmm0
         paddb     xmm2, xmm3


         movdqa    xmm4, [ebx + edx]
-        pminub    xmm2, [ebx + edx + 16]
+        pminub    xmm2, xmm5
         pminub    xmm2, xmm4

         paddb     xmm2, xmm1

         movdqa    [ebx + edx], xmm2
+        movdqa    xmm5, xmm2
         movdqa    xmm2, xmm4

         jnz       .loop2


  synergie  Последно редактирано на 06.10.2020 от synergie, видяно: 1945 пъти. #14043

Жонка на всички е ясно че запуши устата на Пипона доста отдавна. Можеш да му спестиш дийп троут-а които организираш в момента.



  johnfound  Създадено на 06.10.2020, видяно: 1941 пъти. #14044
synergie

Жонка на всички е ясно че запуши устата на Пипона доста отдавна можеш да му спестиш дийп троут-а които организираш в момента.

Е-е-е, на мене темата просто ми стана интересна...

Левенщейн разстоянията и родствените diff алгоритми определено смятам да използвам (включително в AsmBB).

А с MMX/SSE/AVX разширенията банално ми липсва практика, така че всяко упражнение е от полза.



  |  Последно редактирано на 06.10.2020 от |, видяно: 1924 пъти. #14045
synergie

Жонка на всички е ясно че запуши устата на Пипона доста отдавна. Можеш да му спестиш дийп троут-а които организираш в момента.

Я, клюкарката пак се опита да изквичи нещо. :) Останалите се забавляваме. :)



  synergie  Създадено на 06.10.2020, видяно: 1904 пъти. #14066
|

Я, клюкарката пак се опита да изквичи нещо. :) Останалите се забавляваме. :)

Единствено курвите и научните сътрудници дървени философи могат да се забавлят като рандъм хора по форуми ги дийп троутват по материя дето уж им е специалността :)



  |  Създадено на 06.10.2020, видяно: 1895 пъти. #14068
synergie
|

Я, клюкарката пак се опита да изквичи нещо. :) Останалите се забавляваме. :)

Единствено курвите и научните сътрудници дървени философи могат да се забавлят като рандъм хора по форуми ги дийп троутват по материя дето уж им е специалността :)

Я, клюкарката пак се опита да изквичи. :)



  synergie  Последно редактирано на 06.10.2020 от synergie, видяно: 1891 пъти. #14069
|
synergie
|

Я, клюкарката пак се опита да изквичи нещо. :) Останалите се забавляваме. :)

Единствено курвите и научните сътрудници дървени философи могат да се забавлят като рандъм хора по форуми ги дийп троутват по материя дето уж им е специалността :)

Я, клюкарката пак се опита да изквичи. :)

Проблемът на това че си некомпетентен, е че губиш 2 седмици от живота на някой който чака програмата дето си написал да приключи :)



  |  Създадено на 06.10.2020, видяно: 1884 пъти. #14071
synergie
|
synergie
|

Я, клюкарката пак се опита да изквичи нещо. :) Останалите се забавляваме. :)

Единствено курвите и научните сътрудници дървени философи могат да се забавлят като рандъм хора по форуми ги дийп троутват по материя дето уж им е специалността :)

Я, клюкарката пак се опита да изквичи. :)

Проблемът на това че си некомпетентен, е че губиш 2 седмици от живота на някой който чака програмата дето си написал да приключи :)

Я, клюкарката пак се опита да изквичи и измучи едновременно. Прозвуча като пръдня. А може би и беше. :)



  synergie  Последно редактирано на 06.10.2020 от synergie, видяно: 1878 пъти. #14072
|

Я, клюкарката пак се опита да изквичи и измучи едновременно. Прозвуча като пръдня. А може би и беше. :)

Тука масово установихме, че си най-некадърния научен сътрудник в околията. С тоя детски хумур който вкарваш в отговорите си, наистина ли искаш да си развалиш и репутацията си на добрия и забавен клоун на форума?



  |  Създадено на 06.10.2020, видяно: 1876 пъти. #14073
synergie
|

Я, клюкарката пак се опита да изквичи и измучи едновременно. Прозвуча като пръдня. А може би и беше. :)

Тука масово установихме, че си най-некадърния научен сътрудник в околията. С тоя детски хумур който вкарваш в отговорите си, наистина ли искаш да си развалиш и репутацията на добрия и забавен клоун на форума?

Я, форумната клюкарка пак изквича. :)



  Евлампи  Създадено на 06.10.2020, видяно: 1872 пъти. #14074
|

Я, форумната клюкарка пак изквича. :)

Пайп, вържи се към некой изотоп поне да менкаш рандом отчаяните еднообразни лафчета като Синерги ти плющи чимберите



  |  Създадено на 06.10.2020, видяно: 1855 пъти. #14085
Евлампи
|

Я, форумната клюкарка пак изквича. :)

Пайп, вържи се към некой изотоп поне да менкаш рандом отчаяните еднообразни лафчета като Синерги ти плющи чимберите

Ох, горкото... И другия идиот, който не е писал абсолютно нищо по темата реши да се изходи в нея. :)



  Евлампи  Създадено на 06.10.2020, видяно: 1852 пъти. #14088
|

Ох, горкото... И другия идиот, който не е писал абсолютно нищо по темата реши да се изходи в нея. :)

Go, go, go :)



  |  Създадено на 06.10.2020, видяно: 1850 пъти. #14089
Евлампи
|

Ох, горкото... И другия идиот, който не е писал абсолютно нищо по темата реши да се изходи в нея. :)

Go, go, go :)

I am using Go.



  BIGBUGEX  Създадено на 07.10.2020, видяно: 1830 пъти. #14113

johnfound, би ли дал адреса на сорсовете си / игралната ти площадка. Май го няма в темата. Иначе, биеш авх2 решението с 350мс общо на моята машина.



  johnfound  Последно редактирано на 07.10.2020 от johnfound, видяно: 1825 пъти. #14114
BIGBUGEX

johnfound, би ли дал адреса на сорсовете си / игралната ти площадка. Май го няма в темата. Иначе, биеш авх2 решението с 350мс общо на моята машина.

Давах го адреса няколко пъти бе. Но то и темата стана голяма де. Ето го пак: https://asm32.info/fossil/BioData

Ето в този пост съм написал и как се сваля и компилира.

В репозиторито има 2 бранча - "trunk" за класическото решение и "MMX" за решенията със SIMD.

А иначе, AVX2 решението би трябвало да е по-бързо и значително - все пак 256 бита срещу 128.



  BIGBUGEX  Последно редактирано на 08.10.2020 от BIGBUGEX, видяно: 1808 пъти. #14125
johnfound

А иначе, AVX2 решението би трябвало да е по-бързо и значително - все пак 256 бита срещу 128.

Щото режеш еднаквите части от началото. И аз трябва да го пробвам това. Освен това аз групирам низовете динамично. Което не е голяма драма. Иначе, ти препоръчвам да обработваш всички от група Б с едно обхождане на група А. Няма да можеш да извеждаш непосредствено времето за всеки низ но ще ти падне общото време на обработка с около секунда.

edit: С последната модификация 46мс средно на низ. Общо 4642мс за авх2 срещу 5717мс за ссе на johnfound.

Attached files:
FileSizeUploadedDownloadsMD5 hash
bench.7z3208452 bytes08.10.20201685a01d372443d93904ed5b7b96864dfa3


  johnfound  Създадено на 08.10.2020, видяно: 1764 пъти. #14268
BIGBUGEX
johnfound

А иначе, AVX2 решението би трябвало да е по-бързо и значително - все пак 256 бита срещу 128.

Щото режеш еднаквите части от началото. И аз трябва да го пробвам това. Освен това аз групирам низовете динамично. Което не е голяма драма. Иначе, ти препоръчвам да обработваш всички от група Б с едно обхождане на група А. Няма да можеш да извеждаш непосредствено времето за всеки низ но ще ти падне общото време на обработка с около секунда.

edit: С последната модификация 46мс средно на низ. Общо 4642мс за авх2 срещу 5717мс за ссе на johnfound.

Това повече прилича на истина. Жалко, че нямам процесор с AVX2 да го тествам. Следва решение с AVX-512. rofl

Трябва да се отбележи обаче, че колкото повече стрингове се обработват едновременно, толкова е по-къс става префикса, който може да не се обработва. Може би затова и времето не намалява двойно при двойно увеличаване на разрядноста.


0 1 2 3 4 ...14 15 16 17 18 ...31 32 33 34 35 36


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

  



AsmBB v3.0 (check-in: 7544654b24928b93); SQLite v3.47.0 (check-in: 03a9703e27c44437);
©2016..2024 John Found; Licensed under EUPL; Powered by Assembly language Created with Fresh IDE