[Armadillo:07760] Re: ARM11 のVFPを使う

MasakiAoyama email@hidden
2011年 12月 13日 (火) 12:02:16 JST


青山です。

以前、Armadillo-500FXでATDE3にしてEABIで使うと浮動小数点演算が早くなると
教えて頂きました。
着手できずに放置しておりましたが、ATDE3でカーネルとユーザランドを
 (armel) Cross-dev 
で作成し、自作ベンチマークを走らせてみましたが、
ライブラリ関数を使わないfloatの浮動小数点計算部分は1.08倍?くらい速くなっ
ただけでした。

cc とオプションは以下のように指定しました。

CC = arm-linux-gnueabi-gcc
CFLAGS = -O2 -mfloat-abi=softfp -mcpu=arm1136jf-s -mfpu=vfp

元々、
> >> Armadillo-500(FX含む)でVFPを使う手順は、本MLの過去ログの以下のスレッド
> >> が参考になると思います。
> >> http://lists.atmark-techno.com/pipermail/armadillo/2009-March/004155.html
と過去に教えて頂いたやつで出来ていたVFP有効にしてあるlibc-2.3.6.so と
libm-2.3.6.soだけ差し替えて動かしていたのですが、

その環境とくらべてmathライブラリのcos()は 約9.3倍遅くなってしまったので、
やはりライブラリもVFP有効でビルドしてやらないとだめでしょうか。

> もし、ライブラリがボトルネックになっている場合は、ライブラリをビルド
> しなおす必要があります。この方法はライブラリごとに異なりますので、
> ボトルネックになっているライブラリが特定できましたら、再度個別に
> 本MLに投稿いただければと思います。 

libc-2.7.so
libm-2.7.so
libpthread-2.7.so

この3つをVFP有効でビルドしたいですが、どのようにすればよいでしょうか。
atmark-dist-20110704
です。

ちなみに、
Howto : Armadillo-500 FX 液晶モデルでDebian lennyを使う
http://armadillo.atmark-techno.com/howto/a500fx-debian-lenny-x
こちらも試しましたが、cos()が遅いのは同じでした。

EABI環境にしたらデフォルトでVFPを使うようになっている、とかではないのです
ね。

以上、よろしくお願い致します。

Takenoshita Koyo <email@hidden> wrote:

> 竹之下です。
> 
> > VFPを使わない状態でビルドされたARM11のLinux環境に、VFPを使う自分のプログラム
> > を持って行って使いたいと考えています。
> > 
> > 以前、いろいろ試した結果、VFP有効でビルドされたlibc.aとlibm.aをスタティッ
> > クリンクして、自分のプログラムをVFP有効でビルドしてしまえばOK。
> > ということが分かったのですが、やっぱり動的リンクでやりたいなあ。と思うと
> > ころです。
> > 
> > MLの過去の話題にも同じようなことを検討されていた方がいたと思いますが、
> > だいぶ日も経ってますので、何らかの解決策にたどり着いた方がおられましたら、
> > お知恵を拝借したいのですが、いかがでしょうか?
> 
> >> Armadillo-500(FX含む)でVFPを使う手順は、本MLの過去ログの以下のスレッド
> >> が参考になると思います。
> >> http://lists.atmark-techno.com/pipermail/armadillo/2009-March/004155.html
> > 
> > と回答いただき。
> 
> 2009年の頃とは少し状況が変わっていまして、現在は新しい開発環境(ATDE3)がリリース
> されています。ATDE3を使うともう少し簡単にVFPを活用できます。
> 
> まず、開発環境としてATDE v3を使い、Atmark Distのmake menuconfigで
> 以下の項目を選択すると、ユーザーランドのABIとしてEABIを使うように
> なります。(ATDE v2で作成していたユーザーランドはOABIのため、
> バイナリ互換性がなくなります。)
> 
> Kernel/Library/Defaults Selection
>    (armel) Cross-dev
> 
> EABIにすると、OABIの場合と比べ10倍ほど浮動小数点演算が早くなります。
> 
> 上記でも遅い場合、プログラムをビルドする際に、gccのオプションとして
> "-mfloat-abi=softfp -mfpu=vfp"をつけてください。そうすることで、
> 浮動小数点演算時にVFPを使うようになります。
> これにより、さらに数倍速くなることが期待されます。
> 
> 自作のアプリケーションプログラムがボトルネックになっている場合は、
> makefileに"-mfloat-abi=softfp -mfpu=vfp"を追加するだけです。
> (この場合でも、ライブラリは同じものが使えます。)
> 
> もし、ライブラリがボトルネックになっている場合は、ライブラリをビルド
> しなおす必要があります。この方法はライブラリごとに異なりますので、
> ボトルネックになっているライブラリが特定できましたら、再度個別に
> 本MLに投稿いただければと思います。 
> 
> (2011年09月22日 14:45), MasakiAoyama wrote:
> > 青山です。
> > 
> > VFPを使わない状態でビルドされたARM11のLinux環境に、VFPを使う自分のプログラム
> > を持って行って使いたいと考えています。
> > 
> > 以前、いろいろ試した結果、VFP有効でビルドされたlibc.aとlibm.aをスタティッ
> > クリンクして、自分のプログラムをVFP有効でビルドしてしまえばOK。
> > ということが分かったのですが、やっぱり動的リンクでやりたいなあ。と思うと
> > ころです。
> > 
> > MLの過去の話題にも同じようなことを検討されていた方がいたと思いますが、
> > だいぶ日も経ってますので、何らかの解決策にたどり着いた方がおられましたら、
> > お知恵を拝借したいのですが、いかがでしょうか?
> > 
> > 
> > ここまでの経緯
> > 
> > 以前、500FXでVFPを使うプログラムのことについて質問して、
> > 
> >> Armadillo-500(FX含む)でVFPを使う手順は、本MLの過去ログの以下のスレッド
> >> が参考になると思います。
> >> http://lists.atmark-techno.com/pipermail/armadillo/2009-March/004155.html
> > 
> > と回答いただき。
> > 
> > 1.上記のVFP環境構築で作成できる環境にはVFPに対応したXもGTK+も含まれていない
> >  ため、自力では準備ができず断念した。
> > 
> > 2.通常リリースされているatmark-distのARM-LinuxはVFPを使わない状態
> >  ここに、上記VFP環境のlibc,libmの.soファイルを差し替えてみると、
> >  自分のプログラムは無事動作したが、XかGTK+か分かりませんが、うまく動作せず
> >  a500fx-demoの画面アプリの表示がおかしくなった。
> >  (すみません、だいぶ前に試したので詳細わすれました)
> > 
> > 3.自分のプログラムにはVFP環境のlibc,libmをスタティックリンクすることで、
> >  全部うまく動作することを確認。
> > 
> > 4.VFP環境のlibc.soをlibcvfp.so、libm.soをlibmvfp.soにリネーム、
> >  -lcvfp -lmvfpで動的リンクでビルド。
> >  通常のatmark-distのLinux環境に、上記libcvfp.so, libmvfp.soを置いて、
> >  XやGTK+はlibc.soで動くが、自分のプログラムはlibcvfp.soで動く、
> >  というのを素人考えでもくろむも失敗(たぶんlibcvfp.so libmcvfp.soのほうを
> >    参照してなそう)← いまここ
> > 
> > という状況です。
> > 
> > 良い方法がありましたら、教えて頂ければ幸いです。
> > 
> > 以上、よろしくお願い致します。
> > 
> > _______________________________________________
> > armadillo mailing list
> > email@hidden
> > http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> > 
> 
> 
> -- 
> Koyo Takenoshita
> 
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo


----------------------------------
株式会社 レイトロン 新事業推進部
 青山 真樹  email@hidden




armadillo メーリングリストの案内