170 похожих чатов

Кто может помочь? Нужно написать быстрый алгоритм умножения матриц Штрассена-Винограда.

У меня работает намного дольше чем наивный алгоритм. И памяти много ест. Не могу понять в чем ошибка. Вот код https://pastebin.com/RFSVf6y1

19 ответов

5 просмотров

А это не нативный?

Чет там жесть с аллокациями

Bohdan- Автор вопроса
Ilya Zviagin
А это не нативный?

Нет. У наивного кубическая сложность, а у этого должна быть меньше

Bohdan
Нет. У наивного кубическая сложность, а у этого до...

Не забудем, что сложность на бумаге, а вычисления на реальной железке, и алгоритм может быть неоптимален не только с математической точки зрения

Ну для начала надо не массив массивов использовать а двумерный массив.

Dmitriy [Отпуск]
Не забудем, что сложность на бумаге, а вычисления ...

У тебя Штрассен делает ОГРОМНОЕ количество дополнительных аллокаций. Это все равно что ездить с поднятым ручником.

Bohdan- Автор вопроса
Dmitriy [Отпуск]
У тебя Штрассен делает ОГРОМНОЕ количество дополни...

Я уменьшил количество аллокаций. Не особо он изменилось скорость. Для примера наивный для матриц 256 на 256 делает умножение за 56 мс. А у меня Штрассен за 14000 мс и при это забирает больше 1 гб озу. Мне кажется это слишком большая разница так что нужно копать дальше.

А размеры у матриц какие?

Bohdan- Автор вопроса
Bohdan
Я проверял на 256 x 256

попробуй побольше взять если комп выдержит

Bohdan- Автор вопроса
Егор (Дима)
попробуй побольше взять если комп выдержит

У меня при 512 закрывается с ошибкой bad_alloc. И используется больше 2 гб озу. Так не должно быть. В наивном не больше 100 мбайт

Bohdan
У меня при 512 закрывается с ошибкой bad_alloc. И ...

О_о откуда в 2гб то, 512*512*sizeof(int) явно не даст 2 млрд

Bohdan- Автор вопроса
Bohdan
https://prnt.sc/whlnal

глянь в профайлере откуда 2гб, там в студии встроенный

Bohdan- Автор вопроса
Егор (Дима)
глянь в профайлере откуда 2гб, там в студии встрое...

Я посмотрел там больше всего инициализаций матрицы

Похожие вопросы

Обсуждают сегодня

Типа вызывать GetParent и проверять на соответствие GetModuleHandle?
The Bird of Hermes
67
Do any of you guys have interesting projects one could join? I'm a Middle Full-Stack developer (JS/TS, React & Node)
Lev Shapiro
40
$res = json_decode($наша строка из респонса); $res1 = array_map(fn($o) => $o->name, $res->breadcrumbs[0]->entities); Как такое будет на Хаскеле?.. В начале весь джейсон, в ко...
Хаскель Моисеевич Гопник
27
В чем сила брат, в NASM или FASM?
Isaac Kleiner
18
Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
11
А чем вам питонисты не угодили?😂
.
79
Хтось використовував Vapor на Windows?
Jaroshevskii
15
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
Тут кста кто-нибудь NeoVim использует?
Simple Sorcerer
13
Какое виндузовое сообщение приходит TTabSheet, что риэлайняться контролы на нем, даже у которых парент другой? Ситуация: открываю форму - кнопок нет, перелистываю на другой т...
Катерина Свиридова
7
Карта сайта