RS-Onlineで発注して到着まで3日。佐川急便で届いたので国内で再発送してるような感じです。
サイズ
左上がArduino Uno Rev.3、右上がNucleo F446RE、下がNucleo F767ZI。ボードもでかいが144PinのMCUもでかい。
ST Link側のUSBコネクタはmicro-USB(Nucleo F446REなどのNucleo64はmini-USB)。本体側にも別にmicro-USB端子がついていて、有線LAN用のRJ45ジャックもついている。
GPIO等のコネクタは、Aruduino Headerを2列にしたようなZIO Headerと、その外側にmorpho Header(ピンヘッダは実装されていない)がある。
なかなか豪勢な仕様で、お値段3000円しないのでコスパはいいように思う。
浮動小数点演算
Nulceo F401/F446/F303でやったのと同じように浮動小数点演算を試してみた。
Nucleo F767ZIは単精度浮動小数点数ではなく倍精度浮動小数点数のFPUがついているので、F446とF767でそれぞれ比較してみた。
mbed Repository:
https://os.mbed.com/users/ryood/code/FloatingPointTest/ Revision:1
測定結果
F446 float
| op | total | 1-op |
|---|---|---|
| -------- | -------- | --------------- |
| divf | 1168 | 0.1168 |
| sinf | 4939 | 0.4939 |
| cosf | 4665 | 0.4665 |
| expf | 6758 | 0.6758 |
| logf | 6140 | 0.614 |
| sqrtf | 2392 | 0.2392 |
F446 double
| op | total | 1-op |
|---|---|---|
| -------- | -------- | --------------- |
| div | 10754 | 1.0754 |
| sin | 94134 | 9.4134 |
| cos | 110762 | 11.0762 |
| exp | 105595 | 10.5595 |
| log | 137396 | 13.7396 |
| sqrt | 16633 | 1.6633 |
F767 float
| op | total | 1-op |
|---|---|---|
| -------- | -------- | --------------- |
| divf | 974 | 0.0974 |
| sinf | 3690 | 0.369 |
| cosf | 3532 | 0.3532 |
| expf | 5374 | 0.5374 |
| logf | 4884 | 0.4884 |
| sqrtf | 2294 | 0.2294 |
F767 double
| op | total | 1-op |
|---|---|---|
| -------- | -------- | --------------- |
| div | 3985 | 0.3985 |
| sin | 9511 | 0.9511 |
| cos | 11023 | 1.1023 |
| exp | 10358 | 1.0358 |
| log | 13603 | 1.3603 |
| sqrt | 3730 | 0.373 |
float型ではF767の方が若干処理が速くなっていて、double型ではかなり差がついている。
F446の駆動クロックは180MHzで、F767は216MHzなので、float型ではクロック分速いぐらいか。
F446とF767で処理速度の比をグラフ化してみた。
float型ではおおよそ0.8程度。180MHz / 216MHz ≒ 0.83。
double型では、div(割り算)とsqrt以外ではおおよそ0.1程度になっている。
Cortex-M7なので、float型でも速くなってて欲しいな~と思っていましたが、クロック分しか速くなっていない。
Cortex-Aで1.2GHz駆動のRapberry Pi3ぐらいは行ってほしかったのですが。





0 件のコメント:
コメントを投稿