<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 ...11 12 13 14 15 ...24 25 26 27 28 29 30 31 32 33 34 35 36


  ФейкПрофил  Създадено на 30.09.2020, видяно: 1806 пъти. #13240

по-интересното е с какъв компилатор :)



  |  Последно редактирано на 30.09.2020 от |, видяно: 1805 пъти. #13241
Golden Gega

Накрая да вземе някой да сумира резултатите че станах разноглед - платформи, машини, оптимизиран/неоптимизиран и т.н.

Някой да напише с думи прости - МРЕТЕ СЕЛЯНИ ПРОСТИ, ASM РУЛИРА! или С-то си е С, дядките с асемблера в recycle-bin-а!

Според мен изводите са: а) езика за програмиране няма особено значение; б) структурите данни ИМАТ значение; в) Ако имаш embarassingly parallel проблем, използвай GPU. :)

Все пак ще имплементирам чист брутфорс на Го да видя колко време ще отнеме (защото този, който използвам е твърде абстрактен).



  |  Създадено на 30.09.2020, видяно: 1803 пъти. #13242
ФейкПрофил

по-интересното е с какъв компилатор :)

Аз ли? Apple clang version 12.0.0 (clang-1200.0.32.2)



  ФейкПрофил  Създадено на 30.09.2020, видяно: 1798 пъти. #13243
|
ФейкПрофил

по-интересното е с какъв компилатор :)

Аз ли? Apple clang version 12.0.0 (clang-1200.0.32.2)

ръста е още на LLVM 10 :)



  Golden Gega  Създадено на 30.09.2020, видяно: 1795 пъти. #13244
|
Golden Gega

Накрая да вземе някой да сумира резултатите че станах разноглед - платформи, машини, оптимизиран/неоптимизиран и т.н.

Някой да напише с думи прости - МРЕТЕ СЕЛЯНИ ПРОСТИ, ASM РУЛИРА! или С-то си е С, дядките с асемблера в recycle-bin-а!

Според мен изводите са: а) езика за програмиране няма особено значение; б) структурите данни ИМАТ значение; в) Ако имаш embarassingly parallel проблем, използвай GPU. :)

Все пак ще имплементирам чист брутфорс на Го да видя колко време ще отнеме (защото този, който използвам е твърде абстрактен).

Мерси, ще ми е интересно да видя крайните резултати.



  johnfound  Създадено на 30.09.2020, видяно: 1793 пъти. #13245
ФейкПрофил

За ред с номер 3 пак имаш невероятно малко време - 30 пъти по-бързо от ред 0.

Ред 0 е един от най-тежките за смятане. Особеност на подреждането на данните в Dataset.csv. При друго подреждане и времената са други.

По-надолу в редицата има и други подобни случаи, даже и по-малки времена от ред 3. Но резултата е правилен. Сигурно във програмите на HLL нещо не правите както трябва.



  |  Последно редактирано на 30.09.2020 от |, видяно: 1782 пъти. #13250
Golden Gega

Мерси, ще ми е интересно да видя крайните резултати.

Редактирах мнението с резултатите и го добавих. Надявам се да не съм направил някоя идиотщина, защото още не съм си изпил сутрeшното кафе. :)



  Golden Gega  Създадено на 30.09.2020, видяно: 1762 пъти. #13266
|
Golden Gega

Мерси, ще ми е интересно да видя крайните резултати.

Редактирах мнението с резултатите и го добавих. Надявам се да не съм направил някоя идиотщина, защото още не съм си изпил сутрeшното кафе. :)

Мерси, сега да разбирам че при теб няма как да пуснем и на Джони нещата, т.е. да сравним неговото решение с твоите?



  |  Създадено на 30.09.2020, видяно: 1758 пъти. #13267
Golden Gega
|
Golden Gega

Мерси, ще ми е интересно да видя крайните резултати.

Редактирах мнението с резултатите и го добавих. Надявам се да не съм направил някоя идиотщина, защото още не съм си изпил сутрeшното кафе. :)

Мерси, сега да разбирам че при теб няма как да пуснем и на Джони нещата, т.е. да сравним неговото решение с твоите?

Executable което съм свалил от форум в Интернет няма как да пусна. Това ми е принцип и няма значение дали вярвам на пусналия го или не.



  Golden Gega  Създадено на 30.09.2020, видяно: 1753 пъти. #13268
|
Golden Gega
|
Golden Gega

Мерси, ще ми е интересно да видя крайните резултати.

Редактирах мнението с резултатите и го добавих. Надявам се да не съм направил някоя идиотщина, защото още не съм си изпил сутрeшното кафе. :)

Мерси, сега да разбирам че при теб няма как да пуснем и на Джони нещата, т.е. да сравним неговото решение с твоите?

Executable което съм свалил от форум в Интернет няма как да пусна. Това ми е принцип и няма значение дали вярвам на пусналия го или не.

Няма грижи



  johnfound  Създадено на 30.09.2020, видяно: 1747 пъти. #13274
|

Executable което съм свалил от форум в Интернет няма как да пусна. Това ми е принцип и няма значение дали вярвам на пусналия го или не.

Въобще, сорсовете са вече достъпни: https://asm32.info/fossil/BioData

Компилира се така:

fossil clone https://fresh.flatassembler.net/fossil/repo/fresh MY_REPOS/fresh.fossil
mkdir /WORK/FreshLibDev
cd /WORK/FreshLibDev
fossil open MY_REPOS/fresh.fossil FreshLibDev

После:

fossil clone https://asm32.info/fossil/BioData MY_REPOS/BioData.fossil
mkdir /WORK/AsmLeven
cd /WORK/AsmLeven
fossil open MY_REPOS/BioData.fossil

После сетваш променливите:

TargetOS=Linux # Win32 - за Windows версията.                 
lib=/WORK/FreshLibDev/freshlib  

После компилираш така:

cd /WORK/AsmLeven 
fasm -m 300000 ./Levenshtein.asm

Трябва да се появи или Linux или Windоws изпълним файл, в зависимост от променливата TargetOS.



  ФейкПрофил  Последно редактирано на 30.09.2020 от ФейкПрофил, видяно: 1725 пъти. #13281

Браво! Много добра оптимизация - не би ми хрумнало, че може да намерим общ префикс в О(н) време и да спестим от левенщайн :)

Старата ми версия (без проверка за обя префикс): Elapsed: 222600мс

С проверка: Elapsed: 138315мс

Свали ~80 секунди върху целия сет.



  |  Създадено на 30.09.2020, видяно: 1720 пъти. #13286
johnfound
|

Executable което съм свалил от форум в Интернет няма как да пусна. Това ми е принцип и няма значение дали вярвам на пусналия го или не.

Въобще, сорсовете са вече достъпни: https://asm32.info/fossil/BioData

Thanks, ще пробвам. Но ще трябва да ги пусна всичките на друга машина, защото не поддържаш macOS. :)



  |  Последно редактирано на 30.09.2020 от |, видяно: 1718 пъти. #13287
johnfound

В кода, proc Levenstein е предишната имплементация с MMX и опит за паралелна обработка (не много ефективна при Левенщейн), а сегашният фаворит е proc Levenstein2.

Следващата стъпка ще е по аналогия - ако по-малкият код се изпълнява по-бързо, следва да се приеме, че и по-малките данни ще се изпълняват по-бързо. Следователно си струва да се опита с пакетирани данни - по 2 бита на символ. (Защото това са данни за ДНК, а при тях символите са само 4).

Според мен асемблера ще блести най-много ако използваш avx(512) и смяташ разстоянията на повече (64?) стринга едновременно.

Трябва в един момент най-после да науча OpenMP и да видя колко добре ще се справи с векторизиране на С код.



  |  Създадено на 30.09.2020, видяно: 1708 пъти. #13291
johnfound
|

Executable което съм свалил от форум в Интернет няма как да пусна. Това ми е принцип и няма значение дали вярвам на пусналия го или не.

Въобще, сорсовете са вече достъпни: https://asm32.info/fossil/BioData

Компилира се така:

fossil clone https://fresh.flatassembler.net/fossil/repo/fresh MY_REPOS/fresh.fossil
mkdir /WORK/FreshLibDev
cd /WORK/FreshLibDev
fossil open MY_REPOS/fresh.fossil FreshLibDev

После:

fossil clone https://asm32.info/fossil/BioData MY_REPOS/BioData.fossil
mkdir /WORK/AsmLeven
cd /WORK/AsmLeven
fossil open MY_REPOS/BioData.fossil

После сетваш променливите:

TargetOS=Linux # Win32 - за Windows версията.                 
lib=/WORK/FreshLibDev/freshlib  

После компилираш така:

cd /WORK/AsmLeven 
fasm -m 300000 ./Levenshtein.asm

Трябва да се появи или Linux или Windоws изпълним файл, в зависимост от променливата TargetOS.

~/tmp/work/AsmLeven$ fasm -m 300000 ./Levenshtein.asm
flat assembler  version 1.73.22  (300000 kilobytes memory)
error: out of stack space.


  |  Последно редактирано на 30.09.2020 от |, видяно: 1691 пъти. #13299
ФейкПрофил

ръста е още на LLVM 10 :)

Това вероятно има значение. Ето резултатите компилирано с gcc и clang на машина с AMD EPYC 7742.


# GCC
0:  4  6962.730499 ms
1:  4  5661.941457 ms
2:  4  5847.619775 ms
3:  4  1527.305740 ms
4:  40 5923.693092 ms
5:  4  3892.952103 ms
6:  9  4221.266831 ms
7:  6  5516.135584 ms
8:  4  2777.935761 ms
9:  6  4492.822948 ms
10: 58 7285.167814 ms
#CLANG
0:  4  3644.049879 ms
1:  4  2519.609612 ms
2:  4  2596.144889 ms
3:  4  710.885451 ms
4:  40 2639.906794 ms
5:  4  2388.691301 ms
6:  9  2232.470938 ms
7:  6  2458.542905 ms
8:  4  1260.388534 ms
9:  6  2006.592793 ms
10: 58 3208.214118 ms

Къде е оня експерт по компилаторите bvbfan да обясни колко е добро GCC. :)

P.S. Хмм, при това e инсталиран clang 10. Сега ще компилирам най-новия. :)



  johnfound  Създадено на 30.09.2020, видяно: 1689 пъти. #13300
|

Според мен асемблера ще блести най-много ако използваш avx(512) и смяташ разстоянията на повече (64?) стринга едновременно.

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



  johnfound  Последно редактирано на 30.09.2020 от johnfound, видяно: 1685 пъти. #13301
|
~/tmp/work/AsmLeven$ fasm -m 300000 ./Levenshtein.asm
flat assembler  version 1.73.22  (300000 kilobytes memory)
error: out of stack space.

Даже не знаех, че FASM има такава грешка... Или това е грешка на операционната система?

Това FASM за каква OS e?



  ФейкПрофил  Създадено на 30.09.2020, видяно: 1684 пъти. #13302

А с еднакви нива на оптимизация ли ги компилира ? Разликата ми се струва прекалено голяма.



  |  Създадено на 30.09.2020, видяно: 1681 пъти. #13303
johnfound
|
~/tmp/work/AsmLeven$ fasm -m 300000 ./Levenshtein.asm
flat assembler  version 1.73.22  (300000 kilobytes memory)
error: out of stack space.

Даже не знаех, че FASM има такава грешка... Или това е грешка на операционната система?

Това FASM за каква OS e?


allegro:~$ fasm -v
flat assembler  version 1.73.22

Ubuntu-server 20.04


0 1 2 3 4 ...11 12 13 14 15 ...24 25 26 27 28 29 30 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