Как правильно создать 2D-буфер std::vector
в SYCL? У меня есть функция шаблона, которая получает аргументы, как показано ниже:
template <typename T>
void MatrixMulParallelNaive(queue& q,
std::vector<std::vector<T>>& a,
std::vector<std::vector<T>>& b,
std::vector<std::vector<T>>& c){
// Is this a correct way?
buffer<T, 2> a_buf(a.data(), range<2>{a.size(), a[0].size()})
buffer<T, 2> b_buf(b.data(), range<2>{b.size(), b[0].size()})
buffer<T, 2> c_buf(c.data(), range<2>{c.size(), c[0].size()})
/* ... */
}
a
, b
и c
являются 2D std::vector
s
Мне удалось реализовать буферы для 2D-массивов в стиле C, но я пробовал несколько документов и ответов, но, похоже, ни один из них не соответствует этому конкретному варианту использования.