Вопросы по теме 'memory-alignment'
Цель выравнивания памяти
По общему признанию, я этого не понимаю. Скажем, у вас есть память со словом памяти длиной 1 байт. Почему вы не можете получить доступ к переменной длиной 4 байта при одном доступе к памяти по невыровненному адресу (т.е. не делящемуся на 4), как в...
88756 просмотров
schedule
21.03.2024
Выровнять собственный код по границам памяти фиксированного размера с GCC / G ++ / AS?
У меня есть функция C, которая содержит весь код, реализующий байт-коды интерпретатора байт-кода.
Мне интересно, есть ли способ выровнять сегменты скомпилированного кода в памяти по границам фиксированного размера, чтобы я мог напрямую вычислить...
1228 просмотров
schedule
09.08.2022
#pragmapack в C++
зачем нам нужна структура #pragma pack для typedef в C++? В частности, когда вы используете эту структуру в сетевой связи.
5315 просмотров
schedule
16.03.2022
Разбор потока двоичных сообщений в C / C ++
Пишу декодер для бинарного протокола (протокол Javad GRIL). Он состоит примерно из сотни сообщений с данными в следующем формате:
struct MsgData {
uint8_t num;
float x, y, z;
uint8_t elevation;
...
};
Поля представляют собой...
8565 просмотров
schedule
23.06.2022
Именование элементов массива или структуры и массива в объединении
Рассмотрим следующую структуру:
struct Vector4D
{
union
{
double components[4];
struct { double x, y, z, t; } Endpoint;
};
};
Мне кажется, я видел что-то подобное в структуре WinApi IPAddress. Идея состоит в том, чтобы...
3499 просмотров
schedule
22.02.2022
Выровненные и упакованные атрибуты
Я работаю над прошивкой для 16-битного PIC и пишу на C (компилятор Microchip C30). Мое устройство получает длинный список байтов от внешнего устройства, а затем я пытаюсь скопировать эти байты в структуру. Структура определяется следующим образом:...
4391 просмотров
schedule
01.11.2023
Скорость операций с несогласованными данными
Насколько мне известно, ЦП лучше всего работает с данными, которые выровнены по границе, равной размеру этих данных. Например, если каждый элемент данных int имеет размер 4 байта, то адрес каждого элемента int должен быть кратен 4, чтобы ЦП был...
648 просмотров
schedule
27.10.2023
Динамическое размещение объектов с выровненными элементами — возможные решения?
Я рассматриваю возможность использования SSE для ускорения некоторого кода в моем проекте. Обычно для этого требуется 16-байтовое выравнивание данных, над которыми я работаю. Для статического распределения я полагаю, что __declspec(align(16))...
760 просмотров
schedule
25.05.2024
Как выровнять 16-битные целые числа для использования со встроенными функциями SSE
Я работаю с двумерными массивами 16-битных целых чисел, определенных как
int16_t e[MAX_SIZE*MAX_NODE][MAX_SIZE];
int16_t C[MAX_SIZE][MAX_SIZE];
Где Max_SIZE и MAX_NODE — постоянные значения. Я не профессиональный программист, но каким-то...
5093 просмотров
schedule
12.08.2022
Имеет ли valarray непрерывное выравнивание памяти?
Имеет ли valarray непрерывное выравнивание памяти?
Я хочу передать valarray функции (из IPPS), которая принимает только указатели, передав &myValarray[0] . Но поэтому я должен быть уверен, что выравнивание памяти valarray является...
1187 просмотров
schedule
22.06.2022
Почему выравнивание длинного и длинного члена объединения больше, чем содержащее объединение / структура? Это правильно?
Из этого вопроса можно было начать верить, что выравнивание союза не меньше, чем наибольший расклад его отдельных членов. Но у меня проблема с типом long long в gcc / g ++. Полный пример можно найти здесь , но вот части, относящиеся к моему...
1321 просмотров
schedule
19.03.2023
Выравнивание доступа к памяти графического процессора ядра свертки изображений (OpenCL / CUDA)
Чтобы понять, как обеспечить соблюдение требований выравнивания, я несколько раз прочитал следующий отрывок из книги «Гетерогенные вычисления с OpenCL», стр. № 157. Это показывает, как добавить заполнение для проблемы в свертке изображений (при...
3455 просмотров
schedule
25.04.2022
Как выставить выровненный класс с помощью boost.python
При попытке выставить выровненный класс следующим образом:
class __declspec(align(16)) foo
{
public:
void foo_method() {}
};
BOOST_PYTHON_MODULE(foo_module)
{
class_<foo>("foo")
.def("foo_method", &foo::foo_method);
}...
487 просмотров
schedule
13.05.2022
Заголовки программ в формате ELF: MemSiz против FileSiz
readelf -l /bin/bash дает мне это:
Program Headers:
Type Offset VirtAddr PhysAddr
FileSiz MemSiz Flags Align
PHDR 0x0000000000000040 0x0000000000400040...
1575 просмотров
schedule
26.12.2023
Каковы недостатки выполнения pragma pack(1) в C?
Возможный дубликат: Есть ли производительность проблемы при использовании pragma pack(1)?
Каковы недостатки выполнения pragma pack(1) в C? Я определил некоторые данные структуры для протокола связи и хочу отключить любое выравнивание...
1279 просмотров
schedule
02.02.2024
Нет выравнивания памяти с GCC
Я работаю с некоторыми пакетными данными. Я создал структуры для хранения данных пакета. Эти структуры были сгенерированы Python для определенного сетевого протокола.
Проблема в том, что из-за того, что компилятор выравнивает структуры, когда я...
3435 просмотров
schedule
05.06.2022
Выравнивание статического массива с помощью std::aligned_storage
Я пытаюсь реализовать 16-байтовое выравнивание простого статического массива, используя шаблон std::aligned_storage :
#include <type_traits>
int main()
{
const size_t SIZE = 8;
using float_16 = std::aligned_storage<sizeof(float)...
3084 просмотров
schedule
21.06.2022
Как массив выравнивается в C++ по сравнению с содержащимся в нем типом? 2
Следуя теме Как выравнивается массив в C++ по сравнению с содержащимся типом? Я провел эксперимент.
Вот код:
#include<iostream>
using namespace std;
int main()
{
const int N = 12;
{
float p1[N], p2[N];
cout << p1...
87 просмотров
schedule
13.06.2022
MinGW и выравнивание упакованных структур с использованием C ++ 11
Для приведенной ниже структуры фактический (без заполнения) размер структуры равен 54. На 64-битной (Windows 7) машине с MinGW (GCC) 4.8.1 x86_64 я получаю sizeof(BMPHeader) как 56, что понятно. Согласно требованиям формата файла BMP, структура...
1409 просмотров
schedule
28.10.2023
Действительно ли выравнивание имеет значение для производительности в C++11?
Действительно ли выравнивание имеет значение для производительности в C++11?
В книге Страуструпа есть совет упорядочивать элементы в структуре, начиная с наибольшего и заканчивая наименьшим. Но мне интересно, проводил ли кто-нибудь измерения,...
4583 просмотров
schedule
30.03.2022