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

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

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

19 ответов

9 просмотров

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

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

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гб, там в студии встрое...

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта