{"type":"video","version":"1.0","html":"<iframe src=\"https://www.loom.com/embed/bd966d3d549542dcae0a384b1d65fe35\" frameborder=\"0\" width=\"1670\" height=\"1252\" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>","height":1252,"width":1670,"provider_name":"Loom","provider_url":"https://www.loom.com","thumbnail_height":1252,"thumbnail_width":1670,"thumbnail_url":"https://cdn.loom.com/sessions/thumbnails/bd966d3d549542dcae0a384b1d65fe35-e20410dacb4b9942.gif","duration":100.737,"title":"Иерархия памяти и тайлинг матрицы 1024x1024","description":"Привет, это лабораторная работа номер 11, Иерархия памяти и оптимизация. Я работал с матрицей 1024 на 1024 и размером тайла 64, сначала стилизировал вычисления i plus j и i minus j. Затем показал наивную версию с тремя циклами i, j, k, где внутренний цикл читал матрицу по столбцам и получались лишние промахи из за страйдинга. Потом я поменял порядок циклов на IKJ, сделал внутренний цикл по j, чтобы читать последовательно по памяти, и добавил тайлинг 64 для снижения промахов. В конце в main я выбираю версию по аргументу командной строки, меряю время через clock и проверяю корректность контрольной суммой, просьб к зрителям не было."}