Я реализовал тип данных Matrix в C ++, используя 1D-тип данных и упаковывая его в строки и столбцы. Теперь я хочу иметь возможность создавать квадратные / заблокированные подматрицы с этого времени, и я хочу сделать это в памяти.
Проблема в том, что я хочу, чтобы некоторые из этих подматриц были перенесены в память графического процессора и могли обрабатывать их там параллельно. Это, например, полезно для умножения матриц. Поскольку эти подматрицы не выровнены в основной памяти, копирование их в память устройства как единое целое выглядит невозможным без создания отдельной копии? Я хочу иметь это прямое отображение подматрицы графического процессора в матрицу исходного процессора для обновления и повышения эффективности. Я не знаю о точном разбиении заранее.
У кого-нибудь есть идеи, как мне этого достичь?
Просто напоминание, матрица должна быть разбита на блоки, а не по строкам, что будет относительно просто в C / C ++.