- クロスコンパイル環境を構築する
- QEMU を入れる
- NEON のコードを書いて実行する
クロスコンパイル環境を構築する
$ sudo apt-get install g++-arm-linux-gnueabi binutils-arm-linux-gnueabi
QEMU を入れる
$ sudo apt-get install qemu
NEON のコードを書いて実行する
#include <stdio.h> #include <stdint.h> #include <arm_neon.h> int main(int argc, char* argv[]) { uint32_t src[] = {0, 1, 2, 3, 4, 5, 6, 7}; uint32_t dst[4]; uint32x4_t i0 = vld1q_u32(src); uint32x4_t i1 = vld1q_u32(src + 4); uint32x4_t i2 = vaddq_u32(i0, i1); vst1q_u32(dst, i2); for (size_t i = 0; i < sizeof(dst)/sizeof(*dst); ++i) { printf("%d ", dst[i]); } return 0; }
のようなコードを書いてビルドする。
$ arm-linux-gnueabi-g++ -mfpu=neon -mfloat-abi=softfp test.cpp
QEMU の実行には root 権限が必要なこととターゲットのライブラリパスを指定する必要があることに注意する。
$ sudo qemu-arm -L /usr/arm-linux-gnueabi/ a.out 4 6 8 10
0 件のコメント:
コメントを投稿