3
共有オブジェクトにコンパイルされたCライブラリがあり、PythonからC関数を呼び出すためのctypesインタフェースを構築したいと考えています。Python ctypesはデータ構造を整列します
一般的には、それが正常に動作しますが、Cライブラリ内のdouble配列のこの定義があります:
typedef double __attribute__ ((aligned (32))) double_array[512];
私はこのタイプを直接アクセスする方法を発見したので、私はPythonで定義された:
DoubleArray = ctypes.c_double * 512
ほとんどの場合、Cライブラリのセグメンテーションが正しく行われないことがありますが、DoubleArray
が32バイトにアライメントされていないため、この問題が発生していると思います(データはAVXに渡されるため、
どうすればこの問題を解決できますか?