itmoasm2015/Homework2

Лоскутов Игнат, 2538

Closed this issue · 10 comments

2538/Loskutov

Segfault в matrixScale.loop на строчке 131. Если что, я под маком тестирую из-за AVX, а он более требовательный к выходу за границы, чем Linux.

Добавил выравнивание в 32 байта вместо 16 при создании матрицы (возможно, поможет).

Теперь другая ошибка — стек перед вызовом функции не выровнен на 16 байт.
Вообще я в этом домашнем задании не проверяю это, так как линукс не ругается, а я с самого начала упустил этот момент, и у многих эта проблема. Но в OS X это фатально, а по-другому мне не проверить :)

Что-то навыравнивал, но не уверен, что всё.

Теперь не падает, но умножение неправильно работает.

Исходные матрицы портятся.

Не смог подобрать теста, на котором портились бы исходные матрицы.

У меня тест простой: две матрицы заполняются случайными числами, потом выполняется matrixMul, затем в цикле считается произведение при помощи matrixGet и сравнивается.
Исходные матрицы не портятся, похоже, но все равно там ошибка. Ошибка чаще всего возникает на строке 0 и столбце 24 произведения, но бывает и в других столбцах. Чаще всего там лежит ноль. Кроме того, возникает ошибка поврежденного объекта при удалении произведения (два раза free вызвано или что-то в этом роде).

Кажется, исправил

Код 5, комментарии 7, бонус 4 за AVX.

Эх, не успел на полчасика!