インテルのみ表示可能 — GUID: mwh1391807499818
Ixiasoft
3.4. アラインメントされたメモリーの割り当て
FPGAとの間でデータを転送するために使用されるホスト側のメモリーを割り当てる場合、メモリーは少なくとも64バイトに揃えられている必要があります。
ホスト側のメモリーを整列させることで、FPGAとのダイレクトメモリーアクセス(DMA)転送が可能になり、バッファー転送効率が向上します。
重要: ホスト側メモリーの使用方法によっては、 インテル® はより厳密なアラインメントを割り当てることを推奨します。たとえば、割り当てられたメモリーを使用してCL_MEM_USE_HOST_PTRフラグを使用してバッファーを作成する場合、カーネル内のバッファーにアクセスするために使用されるデータ型に合わせてメモリーを適切に配置する必要があります。ホスト側メモリーの位置合わせ要件の詳細については、 OpenCL仕様バージョン1.2のセクションC.3を参照してください。
アラインメントされたメモリー割り当てを設定するには、ホストプログラムに次のソースコードを追加します。
- Windowsの場合
#define AOCL_ALIGNMENT 64 #include <malloc.h> void *ptr = _aligned_malloc (size, AOCL_ALIGNMENT);
整列メモリーブロックを解放するには、関数呼び出し_aligned_free(ptr);を含めます。
- Linuxの場合
#define AOCL_ALIGNMENT 64 #include <stdlib.h> void *ptr = NULL; posix_memalign (&ptr, AOCL_ALIGNMENT, size);
整列メモリーブロックを解放するには、関数呼び出しfree(ptr);を含めます。
関連情報