в кортеж массивов. Сейчас думаю как структуру памяти оптимизировать в CUDA - получается одно и тоже ядро в первом случае 70.440 μs, а во втором 56.152 μs - не кисло так... Как правильно-то? 🧐
Грубо говоря из-за более эффективного использования кеша процессора. Ключевые слова для Гугла: memory alignment
понятно, спасибо, получается что координаты надо хранить разными векторами 🤦♂
если только вектора координат, то это просто матрица.
Да. Причём нередко бывает, что данные выгоднее переупаковать перед вычислениями, если вы их используете в двух разных циклах по разному
получается со структурами в CUDA невыгодно работать...
Это в целом общий принцип. Про него даже в документации Julia написано в разделе про Performance, там, где про порядок прохода по индексам матрицы
Обсуждают сегодня