Лоскутов Игнат, 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.
Эх, не успел на полчасика!