<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 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 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 ...9 10 11 12 13 ...20 21 22 23 24 ...27 28 29 30 31 32 33 34 35 36


  Golden Gega  Създадено на 29.09.2020, видяно: 1759 пъти. #13092
Delegate

ФейкПрофил, и аз мисля, че му е бавен Левенщ*ейнът*. Тоя C# вариант, при мен е по-бърз от неговия.


 public static int LevenshteinDistance(string value1, string value2)
        {
            if (value1.Length == 0)
            {
                return 0;
            }

            int[] costs = new int[value1.Length];

            // Add indexing for insertion to first row
            for (int i = 0; i < costs.Length; )
            {
                costs[i] = ++i;
            }

            int minSize = value1.Length < value2.Length ? value1.Length : value2.Length;


            for (int i = 0; i < minSize; i++)
            {
                // cost of the first index
                int cost = i;
                int addationCost = i;

                // cache value for inner loop to avoid index lookup and bonds checking, profiled this is quicker
                char value2Char = value2[i];

                for (int j = 0; j < value1.Length; j++)
                {
                    int insertionCost = cost;

                    cost = addationCost;

                    // assigning this here reduces the array reads we do, improvment of the old version
                    addationCost = costs[j];

                    if (value2Char != value1[j])
                    {
                        if (insertionCost < cost)
                        {
                            cost = insertionCost;
                        }

                        if (addationCost < cost)
                        {
                            cost = addationCost;
                        }

                        ++cost;
                    }

                    costs[j] = cost;

                }


            }

            return costs[costs.Length - 1];
        }

Тоя откъде го взе, понеже и ползвах за моя пример C# вариант, да не се окаже че съм много назад заради кьопав ЛевенЩЕЙН



  Courvoisier  Последно редактирано на 29.09.2020 от Courvoisier, видяно: 1755 пъти. #13094
Golden Gega

Това за i5-4570 3.20GHz, май е серия K ама джама не казва

Dictionary (SetA) length: 99775

0: Dist: 4, Time: 6344 ms
1: Dist: 4, Time: 5813 ms
2: Dist: 4, Time: 5875 ms
3: Dist: 4, Time: 187 ms
4: Dist: 40, Time: 6172 ms
5: Dist: 4, Time: 3250 ms
6: Dist: 9, Time: 5141 ms
7: Dist: 6, Time: 5953 ms
8: Dist: 4, Time: 1812 ms
9: Dist: 6, Time: 5422 ms

Имам почти подобно време на Ryzen 2700U, което е скопената версия на 2700X-а на Рабито. Интересно ми е Стиви ако го пусне на неговата i5-ца колко ще е времето. Привидно по- нов процесор, но разликите са до десетина милисекунди. Не е много голям бууст. Добре, накачулил съм и други програми, имам Хром с 10-на таба, 1 VS, 1 MSSMS, 1 SourceTree, Teams, една Java се търкаля, Notepad++, един WSL...

SHA сигурно ще смятам по- бързо, имам и AVX.



  Delegate  Създадено на 29.09.2020, видяно: 1751 пъти. #13096
Golden Gega

Тоя откъде го взе, понеже и ползвах за моя пример C# вариант, да не се окаже че съм много назад заради кьопав ЛевенЩЕЙН

От тук : https://github.com/DanHarltey/Fastenshtein



  Golden Gega  Създадено на 29.09.2020, видяно: 1738 пъти. #13103
Delegate
Golden Gega

Тоя откъде го взе, понеже и ползвах за моя пример C# вариант, да не се окаже че съм много назад заради кьопав ЛевенЩЕЙН

От тук : https://github.com/DanHarltey/Fastenshtein

Значи същия съм ползвал и аз



  |  Последно редактирано на 29.09.2020 от |, видяно: 1730 пъти. #13106
|
johnfound

12-те секунди бяха на "бързият процесор" (N3540). А иначе, големият проблем се оказа с xchg r/mem (пък и r/r) която се оказа, че има гигантска латентност и във вътрешния цикъл скапваше времето тотално.

Никога не съм харесвал xchg, освен ако не е cmpxchg с lock префикс.

johnfound

Разликите в изпълнението са заради максималното разстояние - ако вече е намерено разстояние 4, то няма смисъл да завършваш стринговете с по-голямо разстояние.

Вярно, забравих да имплементирам това в C версията. Прикачвам нова версия... Разбира се, трябва да се компилира с О3.

Както и очаквах, на GPU-то тази оптимизация не доведе до значително подобрение. Сега 200К се сравняват за 1318 секунди вместо за 1335 секунди.



  BIGBUGEX  Създадено на 29.09.2020, видяно: 1720 пъти. #13107

asm:

0: Dist: 4, Time: 5937 ms
1: Dist: 4, Time: 5496 ms
2: Dist: 4, Time: 5616 ms
3: Dist: 4, Time: 172 ms
4: Dist: 40, Time: 5937 ms
5: Dist: 4, Time: 3106 ms
6: Dist: 9, Time: 4919 ms
7: Dist: 6, Time: 5703 ms
8: Dist: 4, Time: 1728 ms
9: Dist: 6, Time: 5058 ms

C:

0: 4 5624.474042 ms
1: 4 5307.951031 ms
2: 4 5488.499883 ms
3: 4 1414.807889 ms
4: 41 5683.074905 ms
5: 4 3654.337485 ms
6: 9 3959.592666 ms
7: 6 5184.470029 ms
8: 4 2593.544323 ms
9: 6 4212.431926 ms

3700Х закотвен на 3.6GHz.



  johnfound  Последно редактирано на 29.09.2020 от johnfound, видяно: 1716 пъти. #13108
BIGBUGEX

C:

4: 41 5683.074905 ms

Интересно, но C версията смята грешно - трябва да е 40 на 4-тия стринг.



  |  Създадено на 29.09.2020, видяно: 1701 пъти. #13109
johnfound
BIGBUGEX

C:

4: 41 5683.074905 ms

Интересно, но C версията смята грешно - трябва да е 40 на 4-тия стринг.

Go версията също дава 40. Ето и разликите според нея (D=delete, I=insert, R=replace, минус=match).


------------------------------------------------------I-----------------------R---DR---DDDDR-D-D-D-R--D-D---D-RR-RR--I----D---RR----IR-I-II-RRR----RRR-R-IRR--I


  synergie  Създадено на 29.09.2020, видяно: 1698 пъти. #13110
johnfound
0: Dist: 4, Time: 8588 ms
1: Dist: 4, Time: 7957 ms
2: Dist: 4, Time: 8223 ms
3: Dist: 4, Time: 260 ms
4: Dist: 40, Time: 8604 ms
5: Dist: 4, Time: 4499 ms
6: Dist: 9, Time: 7122 ms
7: Dist: 6, Time: 8251 ms
8: Dist: 4, Time: 2516 ms
9: Dist: 6, Time: 7319 ms

Тия времена, делени на 6 не са ли аналогични на Go версията с trie?



  johnfound  Създадено на 29.09.2020, видяно: 1693 пъти. #13112
synergie
johnfound
0: Dist: 4, Time: 8588 ms
1: Dist: 4, Time: 7957 ms
2: Dist: 4, Time: 8223 ms
3: Dist: 4, Time: 260 ms
4: Dist: 40, Time: 8604 ms
5: Dist: 4, Time: 4499 ms
6: Dist: 9, Time: 7122 ms
7: Dist: 6, Time: 8251 ms
8: Dist: 4, Time: 2516 ms
9: Dist: 6, Time: 7319 ms

Тия времена, делени на 6 не са ли аналогични на Go версията с trie?

Who knows... Това :6 е малко изсмукано от пръстите, пък пайпа не иска да пуска асемблерски код на неговите числотрошачки. rofl

По някое време ще разчистя сорса, да може да се компилира без зависимости и ще го публикувам. В момента трябва да се инсталират доста неща, за да се компилира...



  Delegate  Създадено на 29.09.2020, видяно: 1692 пъти. #13113

Джонка, последното ти exe го хваща Уиндоус дифендера и вика Trojan:Win32/Fuery.C!cl Онова от архива BioData не го закача, но това от AsmLeven го нарочи.



  johnfound  Създадено на 29.09.2020, видяно: 1688 пъти. #13114
Delegate

Джонка, последното ти exe го хваща Уиндоус дифендера и вика Trojan:Win32/Fuery.C!cl Онова от архива BioData не го закача, но това от AsmLeven го нарочи.

И двете са компилирани от подобен сорс... А Линукската и Уиндоуската версия, съвсем от един. Поста ми не е редактиран от никой, така че файлът е чист и оригинален.



  Delegate  Създадено на 29.09.2020, видяно: 1684 пъти. #13115

Исках да ти пусна най-новото ехе при мене да сравня с posgtgreSQL, понеже на моя i5 7200U постгрето ми изпълнява заявката за всички 100, всеки срещу 100К сравнение за 3 минути, което отвява C# решението ми, и идва около 5 пъти по-бързо от C#-па на моя комп. Да не би да е кеширало някъде постгрето и да ми вади зайци от ръкава..



  johnfound  Създадено на 29.09.2020, видяно: 1679 пъти. #13116
Delegate

Исках да ти пусна най-новото ехе при мене да сравня с posgtgreSQL, понеже на моя i5 7200U постгрето ми изпълнява заявката за всички 100, всеки срещу 100К сравнение за 3 минути, което отвява C# решението ми, и идва около 5 пъти по-бързо от C#-па на моя комп. Да не би да е кеширало някъде постгрето и да ми вади зайци от ръкава..

Пускай го - exe-то е чисто. Мога да пробвам да го прекомпилирам някак си, но като не знам какво не му харесва на антивируса ти?

А това с постгре-то, със изчислянията на дистанцията ли е? Защото ако е така - отвява не само C# решението.

И да - нормално е да кешира в рам-а, но защо това да е "зайци от ръкава"? Така работят всички бази данни.



  synergie  Създадено на 29.09.2020, видяно: 1675 пъти. #13117
johnfound
synergie
johnfound
0: Dist: 4, Time: 8588 ms
1: Dist: 4, Time: 7957 ms
2: Dist: 4, Time: 8223 ms
3: Dist: 4, Time: 260 ms
4: Dist: 40, Time: 8604 ms
5: Dist: 4, Time: 4499 ms
6: Dist: 9, Time: 7122 ms
7: Dist: 6, Time: 8251 ms
8: Dist: 4, Time: 2516 ms
9: Dist: 6, Time: 7319 ms

Тия времена, делени на 6 не са ли аналогични на Go версията с trie?

Who knows... Това :6 е малко изсмукано от пръстите, пък пайпа не иска да пуска асемблерски код на неговите числотрошачки. rofl

По някое време ще разчистя сорса, да може да се компилира без зависимости и ще го публикувам. В момента трябва да се инсталират доста неща, за да се компилира...

Хахахахах е сега го сметнах, 1055 ms average за първите 10 ръна с асм бинарито спрямо 1083 аверидж за Го версият при х6 коефициент. Пипончо, тая картинка виждал ли си я:

My picture


  Delegate  Последно редактирано на 29.09.2020 от Delegate, видяно: 1673 пъти. #13119
johnfound

А това с постгре-то, със изчислянията на дистанцията ли е?

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

My picture
Attached files:
FileSizeUploadedDownloadsMD5 hash
levenstein.png266982 bytes29.09.20201908329978ba1fdbf5a62186eaa49080a31


  johnfound  Последно редактирано на 29.09.2020 от johnfound, видяно: 1668 пъти. #13120
Delegate
johnfound

А това с постгре-то, със изчислянията на дистанцията ли е?

Ами с дистанцията, как иначе. Малко съм барнал параметъра на функцията, да търси до 62 макс, но и до 100 да го направя няй-много да скочи секунда.

Приблизително 2300ms на стринг е определено великолепен резултат. Да не излезе накрая, че базите данни се справят по-добре от къстъм кода? rofl



  synergie  Създадено на 29.09.2020, видяно: 1660 пъти. #13121
johnfound
Delegate
johnfound

А това с постгре-то, със изчислянията на дистанцията ли е?

Ами с дистанцията, как иначе. Малко съм барнал параметъра на функцията, да търси до 62 макс, но и до 100 да го направя няй-много да скочи секунда.

Приблизително 2300ms на стринг е определено великолепен резултат. Да не излезе накрая, че базите данни се справят по-добре от къстъм кода? rofl

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



  Delegate  Създадено на 29.09.2020, видяно: 1659 пъти. #13122

Ако имаш postgreSQL пробвай да не би да пропускам нещо. Нали щяхте на sqlite даже да пробвате.



  Унуфри  Създадено на 29.09.2020, видяно: 1659 пъти. #13123

Абе вие работите ли нещо или сте си вземали отпуска да мерите чуровете ?


0 1 2 3 4 ...9 10 11 12 13 ...20 21 22 23 24 ...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