Попытка выровнять адрес массива / списка Python перед передачей его в C для обработки
Написание нескольких функций в C для вызова из Python 3.6+, и мне интересно, как обеспечить выравнивание (32,64,128,...) адреса памяти массива / списка перед передачей его адреса в C для использования преимуществ AVX2, SSE2 и т. д.
То, что у меня уже работает, работает отлично.Нет проблем с тем, как все работает.Нет. Мне просто интересно:
В функциях C (gcc) я могу сделать (и, кажется, работает нормально, глядя на сгенерированный код сборки):
__attribute__((aligned(32))) int *a = array; // array passed in from Python
, а затем яЯ пишу код C для оптимизации от gcc ... Он работает для моих нужд.Да.Но есть ли способ сделать это (выравнивание) заранее на стороне Python?