Современный подход к созданию STD :: вектор выделяет выровненную памятьC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Современный подход к созданию STD :: вектор выделяет выровненную память

Сообщение Anonymous »

Следующий вопрос связан, однако ответы старые, и комментарий от пользователя Марка Глиссе предполагает, что есть новые подходы, поскольку C ++ 17 к этой проблеме, которые могут быть недостаточно обсуждены. __m256 < /code>, и уменьшить мой размер в 8 раза, он дает мне выровненную память. < /p>

e.g. std :: vector mvec_a ((n*m)/8);

слегка взломанным способом я могу поднять указатели на векторные элементы, которые позволяют мне получить доступ к индивидуальному плаву. aligned, and thus can be loaded into __m256 and other SIMD types without segfaulting.

I've been looking into aligned_alloc.

This can give me a C-style array that is correctly aligned:

Код: Выделить всё

auto align_sz = static_cast (32);
float* marr_a = (float*)aligned_alloc(align_sz, N*M*sizeof(float));
< /code>

Однако я не уверен, как сделать это для std :: vector  < /code>.  Предоставление std :: vector  
собственности Marr_a , похоже, невозможно.>

Подробнее здесь: https://stackoverflow.com/questions/601 ... ned-memory
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»