コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2018年8月14日 >>> 2018年8月1日
link もっと後

2018年8月14日

自分のマシンは何GFLOPSか? その2

その1その2その3

LINPACKのビルドができたので、さっそく実行してみます。バイナリはbinディレクトリの下にあります。

実行の仕方はmpirun -n 4 xhplのようにします。パラメータファイル(HPL.dat)が置いてあるディレクトリで実行してください。


AMD A10-7800での実行結果

これが最速パラメータかどうか自信がありませんが、とりあえず10GFlopsだそうです。

しかしhdk氏のAMD A10-7870Kは19GFlops出ているそうです。両者ともにBulldozer系のAPUなのに、倍も差がつく理由がさっぱりわかりません。謎です…。

AMD A10-7800の性能(追記)

何気なくcblasとatlasのスタティックリンクをやめて、ダイナミックリンクに変更したところ、いきなり性能が上がり1.7倍の17GFlopsになりました。


AMD A10-7800での実行結果(ダイナミックリンク版)

えー?なぜ!?とりあえずperf topで見てみるとlibatlas.soの関数が8割ほどの実行時間を占めています。ここが効率的になったんでしょうか?そんなに変わるものですかね、さっぱり意味がわかりません…。

ARMも見てみる

ROCK64でも実行してみました。SoCはRockchip RK3328、CPUはCortex-A53 x 4 です。


ROCK64での実行結果

大体1.5GFlopsでした。A10-7800と比べるとやはり1桁違いますね(PCが6.7倍速い)(ダイナミックリンク版だと11倍速い)。

コンパイル実験(2018年8月12日の日記参照)のときはPCが18倍ほど速かったので、コンパイル実験よりは差が縮まっている、とも取れます。

電力効率の点から見ると、PC 1台よりROCK64を10台並べた方が省エネなのでしょうか?微妙かな…?今度、ワットチェッカーで比べてみましょうか。

編集者:すずき(2018/08/15 10:08)

コメント一覧

  • hdkさん(2018/08/14 23:06)
    なるほど! LINKERを変えていなくてリンクエラーになるのを何とかしようとして手こずっている間に-lcblas -latlasに変えていました... まさかそれが実行時間を短縮するとは...
  • すずきさん(2018/08/15 08:34)
    ダイナミックリンクにするだけで性能がほぼ倍になるので、私も驚きです…。
open/close この記事にコメントする



2018年8月13日

自分のマシンは何GFLOPSか? その1

その1その2その3

自分のマシンは何GFLOPSか知りたくなって、スパコン界隈で有名なLINPACKを実行してみようと思い立ちました。ソースコードは HPL- A Portable Implementation of the High-Performance Linpack Benchmark for Distributed-Memory Computers にあります。私はhpl-2.2.tar.gzを使用しました。

ビルド方法はINSTALLファイルに書いてある通りですが、結構ハマったので、私の手順もメモしておきます。環境はDebian GNU/Linux Testingのamd64版です。

LINPACKのMakefile

コードを展開し、setupディレクトリの下にあるMake.xxxをトップディレクトリにコピーして使います。たくさんファイルがありますが、AthlonマシンなのでLinux_ATHLON_CBLASを選びました。FBLASという名前のファイルもありますが、

  • CBLAS: C版
  • FBLAS: Fortran版

のようです。用語の意味はわかりませんが、Makefileのdiffを見れば何となくわかるはず、きっと。

ビルドの準備

コピーしてきたMake.Linux_ATHLON_CBLASは書き換える必要があります。特に大事なのはTOPdirです。

この変更を忘れるとホームディレクトリ直下のhplというディレクトリがトップディレクトリだと思って、ビルドを始めます。最終的に「Make.incが見つからない」と言われて失敗します。

Make.incをfindで探すとわかりますがMake.incはシンボリックリンクです。ビルドに失敗するときはMake.incが全然関係ない場所を指していると思います。

もしTOPdirを書き換え忘れてビルドが失敗した場合はmake arch=Linux_ATHLON_CBLAS clean_archとしてください。アーキテクチャ名の付いたディレクトリ(Make.incもそのディレクトリに入っている)が全て消滅するはずです。

書き換え箇所
# TOPdirをソースコードを配置した位置に合わせて修正します
TOPdir = ...

# コンパイラをgccからmpiccにします
CC = /usr/bin/mpicc
# リンカもgccからmpiccにします
LINKER = /usr/bin/mpicc

# OpenMPIのライブラリ位置
MPdir = /usr/lib/x86_64-linux-gnu
MPinc = -I$(MPdir)/openmpi/include

# ビルドしたバイナリが動かなくなるため、MPlibは削除
#MPlib = ...

# LAlibのライブラリ位置
LAdir = /usr/lib/x86_64-linux-gnu
# スタティックリンクだとなぜか遅いので、ダイナミックリンクに変更
LAlib = -lcblas -latlas

# 末尾に -lrt -lbacktraceを追加します。
# HPL_LIBSの先頭に追加するとリンクエラーになります。
HPL_LIBS = ... -lrt -lbacktrace

あと、私の環境の場合、下記パッケージのインストールが必要でした。

  • libopenmpi-dev
  • libmpich-dev
  • libatlas-base-dev

実行はまた今度にします。

編集者:すずき(2018/08/15 10:08)

コメント一覧

  • hdkさん(2018/08/14 00:11)
    LINKERも変えるんですかね(ちゃんと理解してない)
  • すずきさん(2018/08/14 00:20)
    あ、そうでした、LINKER も mpicc に変えないと、めちゃくちゃエラーが出ます…。
  • すずきさん(2018/08/14 00:33)
    LINKER の記述も足しておきました。
  • すずきさん(2018/08/14 12:34)
    LAlib をダイナミックリンクにする記述も足しました。
open/close この記事にコメントする



2018年8月12日

ARM PCで開発できるか?

最近のARM搭載SoCはかなり速くなっています。もしかしてx86 PCの代わりに使えるのではないでしょうか?開発に使うことを想定して、コンパイル速度を比較してみたいと思います。

比較に使うのはLinux Kernelの開発ツリー(linux-next)です。コンフィグはデフォルトを使い、ビルドターゲットはallを指定します。ビルドしているアーキテクチャが違う(ROCK64: arm64, AMD A10: x86)ので、時間の単純比較はできませんが、参考にはなると思います。

AMD A10 7800、32GB DDR3-1600のPCでlinux-next x86のtime make -j4 allを実行しますと、

  • real 10m33.584s
  • user 33m37.811s
  • sys 4m7.908s

不遇のBulldozer系コア、もはや4年落ちとなったCPUで、大して速くはありませんが、十分実用的というか、待っていられるレベルです。

Intel Pentium J4205、16GB DDR3L-1600のPCでlinux-next x86のtime make -j4 allを実行すると、

  • real 14m45.968s
  • user 51m57.967s
  • sys 5m47.331s

Pentium JはAtom系列で遅いと思いきや、予想より何倍も速かったです…。ナメてました、ごめんなさい。

ROCK64、Rockchip RK3328、Cortex A53 x 4、4GB DDR3でlinux-next arm64のtime make -j4 allすると、

  • real 179m33.126s
  • user 266m0.254s
  • sys 22m52.046s

PCと比較するとほぼ1桁遅いです。さすがにこれは待っていられません。ROCK64は普段使いには十分速いですが、開発に使うのは辛そうですね…。

Raspberry Pi 3、Broadcom BCM2837、Cortex A53 x 4、1GB LPDDR2でlinux-next armのtime make -j4 allすると、

  • real 146m46.807s
  • user 236m43.970s
  • sys 10m41.310s

ビルドしているアーキテクチャが違う(ROCK64はarm64、RasPi 3はarm)ので、単純比較はできませんけど、ROCK64と大差ないですね。

もっと速いARM SoCは?

今のところスマホ、TV/STB系ARM SoCはA72 x 4、A53 x 4が最強クラスのようです。サーバー系ARM SoCに目を向ければA72 x 16(NXP LX2160A)もしくはA53 x 24やA53 x 48(Cavium ThunderX)といった桁違いメニーコアがありますが、そんなに要らないんですよね…。

中間の製品はありません。買う人いないんでしょうね。

ARM SoC搭載ボード

今後のお買い物の参考に、ざざっと調べてみました。

Tegra系
ボードJetson TX2、Denver x 2、A57 x 4、8GB LPDDR4、$600日本だと販売店のぼったくりで10万円。
HiSilicon Kirin 960
ボードHiKey 960、A72 x 4、A53 x 4、3GB LPDDR4、$239良いんだけど、メモリがもう一声欲しかった…。
Rockchip RK3399
ボードNanoPC-T4、A72 x 2、A53 x 4、4GB LPDDR3-1866、$109 DDR3ではあるけど、良さそう。
Samsung S5P6818
ボードNanoPC-T3 Plus、A53 x 8、2GB DDR3、$75可もなく不可もなく?
Amlogic S912
ボードが見当たらない、A53 x 8、どこか発売してくれないかな。
Amlogic S905
ボードODROID C2、A53 x 4、2GB DDR3、$39 S912の一世代前ですね。
AllWinner H6
ボードPINE H64、A53 x 4、2GB LPDDR3-1600、$36安くて素敵だけど、さすがに見劣りしてしまうなあ。

性能だけ求めるならJetsonかHiKey 960で、コスパならNanoPC-T4ですかね。Jetsonなら流行りのAIとか、GPGPUも実験できますね。お値段はべらぼうですけど…。

編集者:すずき(2018/08/14 13:32)

コメント一覧

  • すずきさん(2018/08/14 13:32)
    Raspberry Pi 3 の結果も足しておいた。
open/close この記事にコメントする



2018年8月11日

地震保険

AIG損害保険から「大阪北部地震で被害を受けた方はご連絡ください」という手紙が来て、地震保険に加入していたことを知りました。ずっと火災保険だと思ってたよ……。

人生初の地震保険です。

保険会社に被害を申請(電話、Webでも可能)すると、調査員さんが家に来てくれます。調査員の方は、かなり積極的に被害としてカウントしてくれます。むしろ、こちらが「いやー、そこは特に被害無かったですね…」と断るような形になるくらいでした。

家財の場合、壊れなくても、地震で倒れたりズレたら被害としてカウントされるそうです。あと、地震保険で特徴的なのは、被害を受けた「種類」が大事なことです。本が1冊でも100冊でも、カウントは「本」の1種類のみですが、棚とテレビと冷蔵庫が地震でズレたり倒れたりすれば3種類としてカウントされ、被害が大きいとみなされるようです。

地震保険の査定額

地震保険は火災保険と違い損害額ではなく、保険金額(契約時に決めている額面)の何割という形で支払われます(地震保険 | 個人のお客さま | AIG損保へのリンク)。

我が家の場合、家財の「一部損」判定でした。この場合、地震保険金額の5%が支払われることになります。契約していた保険金額は100万円くらいだった(それも知らなかった…)ので、支払われる額は大体5万円です。

大阪北部在住で、地震保険に加入している人は、とりあえず被害申請をしてみるといいですね。判定結果が一部損(一番低い)でも、地震でグチャグチャにされた部屋の片づけ手間賃くらいにはなると思います。

査定方法

査定は結構面白いです。馬のフィギュアがテーブルから落ちてたら「被害です」、お皿が落ちたり転げたら割れてなくても「被害です」。逆に言うと、壊れた物の金額は勘案しないので、被害の受け方によっては被害額と保険の査定額が全く合いません。

しかし元々そういう保険なんです。火災保険や自動車保険とは仕組みが違うのですね。

保険会社がんばってる

AIG損害保険の調査員の方曰く、大阪北部地震と7月豪雨の被害調査を迅速に行うため、全国の調査員が応援に駆けつけているのだとか。今日来ていただいた方も北海道から応援に来ていると言っていました。

最近は特に暑いし、特に豪雨の地域では道路がやられていて、被災地を駆け回るにもとても大変らしいです。頭が下がる思いです。

編集者:すずき(2018/08/12 21:32)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2018年8月10日

エディタ

誰しもお気に入りのエディタがあると思いますが、私は割とメチャクチャです。

C言語系は読むときはVim + GNU Global、書くときはサクラエディタを使うことが多いです。

Vimはタグジャンプやヒストリが優秀で、検索もしやすいので、コードを読む際にはとても便利だと思います。ログを差し込んだり、コードを多少書き換える程度であればVimで済ませます。

しかし1から全て書くような場合は、サクラエディタが多いです。何ででしょうね?関数表示が便利なのかな?そんなサクラエディタもC++ を書くときはイマイチで、ラムダがまともに表示されず不便です。

GVimでtabと :Tlistを使うとサクラエディタの関数表示に近くて、個人的には良い感じですが、常用には至っていません。何が悪いのかわからない…。

Javaは読むことはあまり無いけどVimですかね、書くときはIntelliJ IDEAです。スクリプト系はVimで読むし、書きます。

こうして並べてみると、かなり支離滅裂です。どうしてこうなった…??

VimとEmacsの思い出

VimもEmacsも初めて使ったとき「は?何だこれ……??」と思いました。どちらも終了方法がわからず、まともに使えませんでした。今はIDEもVimも適度に使っています。

でもEmacsは完全に使い方を忘れてしまった。ごめんねEmacs…。

編集者:すずき(2018/08/12 21:55)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2018年8月8日

久しぶりに自作ARMエミュレータ

久しぶりに自作ARMエミュレータememuを(ソースコードはこちら)動かそうと思い、Linux 4.4のlatestである、Linux 4.4.146をダウンロードしました。

このememuではARM Versatile PB/APボードの一部デバイスと、CPU ARM926EJ-Sの一部、アーキテクチャで言えばARMv5T相当をエミュレーションしています。

クロスビルドできない

巷で手に入るコンパイラはARMv5Tより新しい命令を出力してしまい、エミュレータで実行できませんので、最初にcrosstool-ngで、ARMv5T向けのgcc 8.1.0を作成しました。

いざLinux 4.4.146をクロスビルドしましたが、エラーになり、コンパイルできませんでした。

エラーの意味が良く分からなかったので、さっくり諦めましてcrostool-ngでgcc 7.3を作成しなおし、ビルドをやり直したところ、無事コンパイルが通りました。

Linuxが動かない

Linux 4.4.146は起動しませんでした。偶然持っていた少し古いバージョン(Linux 4.4.77)に戻したりもしましたが、結果は同じで全く起動しません。

デバッグすると、ドライバの作りが変わったのかAACIとMMCIというハードウェアに対して、今まで叩いていなかったはずのレジスタをガンガン叩いていました。ememuは存在しないI/Oレジスタを叩くと、エミュレータが例外で落ちてしまい、動かなくなるんです…。

とりあえずレジスタ定義だけ適当に追加したところ、エラーが出まくりますが、起動はしました。適当でも動いてくれるLinuxは強い子です。

buildrootが動かない

しかし今度はbuildrootで作成したbusyboxと愉快な仲間たちが起動しません。/dev/nullが無いよ?と永遠にエラーが出続けます。

調べてみるとLinux 4.4.146のdefconfigだとCONFIG_DEVTMPFSがnつまり無効なんですね。最近の感覚でdevtmpfsはあって当然くらいに思っていたので、盲点でした。コンフィグでdevtmpfsを有効にしてカーネル再ビルドしたところ、やっとbuildrootが動きました。

端末の色がおかしい

対応していない制御文字を送ってきているらしく、ememuの端末(独自実装です)の色がおかしくなります。

これはすぐ直せそうになかったので、しばらくは変な表示と付き合うことになりそうです。

編集者:すずき(2018/08/09 00:51)

コメント一覧

  • すずきさん(2018/08/09 01:09)
    後でやりなおしたら gcc 8.1.0 でも Linux 4.4.146 をコンパイルできました。あのエラーは何だったんだろう。幻でも見ていたんだろうか??
open/close この記事にコメントする



2018年8月5日

微妙に壊れてるThinkPad E480のキーボード

先日購入(2018年6月14日の日記参照)したThinkPad E480ですが、キーボードのカーソルキー、しかも上カーソルキーだけが微妙に壊れています。

キーを押すとキーが傾いてしまい、引っかかって戻ってこないときがあります。

キーを分解してみた

何が引っかかっているのか調べるために分解してみました。キートップをてこなどで外すと、パンタグラフが入っています。パンタグラフは2つの部品からできています。


キーボードのパンタグラフ、分解

2つの部品を組み合わせると、I字型(畳んでいるとき)もしくはX字型(開いているとき)になります。


キーボードのパンタグラフ、畳んだ状態


キーボードのパンタグラフ、開いた状態

良く見るとこの部品、軸が折れてしまっています。


キーボードのパンタグラフ、分解、軸が折れている

軸が片側なくなっているため、パンタグラフを開いても綺麗なX字型にならず、捻じれてしまいます。


キーボードのパンタグラフ、開いた状態、軸が折れているので歪む

これによってキートップが若干傾いてキーボードのフレームに引っかかり、元の位置に戻らなくなるようです。

対策

修理に出そうかどうか迷って、いろいろ押し方を試しているうちに、比較的引っかかりにくい押し方があることを見つけました。今は押し方を工夫することで凌いでいます。

さらに最近は、普通にキーを押しても引っかかりにくくなった気がします。パンタグラフが壊れているのは相変わらずなので、キートップ側が削れたのか、変形したのかな?

編集者:すずき(2018/08/05 01:20)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2018年8月4日

レガシィの4回目の車検

目次:

先週、大阪スバル(高槻店)にレガシィの車検をお願いしていました。今日は納車です。

JR高槻駅からディーラーまで歩きましたが、もう、とにかく暑い暑い。暑くてやってられません。将来、車を買い替えるとしたら、夏には絶対、車は買わないぞ、絶対だ。心に決めました。

料金は自賠責&税金込みで13万円くらいでした。特に大きな故障もなかったし、そんなもんでしょう。ね。

編集者:すずき(2023/09/30 15:07)

コメント一覧

  • hdkさん(2018/08/05 01:16)
    車検の時はいつも代車借りてます。駅やバス停は近いけど、タダで貸してくれるので... トヨタ系ディーラーだからですかね? でも最初中古車買った店も貸してくれていました。駅から 1km もあるのに代車なしだとつらいですね。
  • すずきさん(2018/08/05 01:25)
    > hdk さん
    スバルも代車を貸してくれますが、今回は長期間(1週間)預けていたことと、8月は休みが多いせいか、単に繁忙期なのか、貸せる代車が無いと言われました…。
open/close この記事にコメントする



link もっと前
2018年8月14日 >>> 2018年8月1日
link もっと後

管理用メニュー

link 記事を新規作成

<2018>
<<<08>>>
---1234
567891011
12131415161718
19202122232425
262728293031-

最近のコメント5件

  • link 21年9月20日
    すずきさん (11/19 01:04)
    「It was my pleasure.」
  • link 21年9月20日
    whtさん (11/17 23:41)
    「This blog solves my ...」
  • link 24年10月1日
    すずきさん (10/06 03:41)
    「xrdpで十分動作しているので、Wayl...」
  • link 24年10月1日
    hdkさん (10/03 19:05)
    「GNOMEをお使いでしたら今はWayla...」
  • link 24年10月1日
    すずきさん (10/03 10:12)
    「私は逆にVNCサーバーに繋ぐ使い方をした...」

最近の記事20件

  • link 23年4月10日
    すずき (11/15 23:48)
    「[Linux - まとめリンク] 目次: Linux関係の深いまとめリンク。目次: RISC-V目次: ROCK64/ROCK...」
  • link 24年11月6日
    すずき (11/15 23:47)
    「[Ubuntu 24.04 LTS on ThinkPad X1 Carbon Gen 12] 目次: Linux会社ではTh...」
  • link 24年11月11日
    すずき (11/15 23:26)
    「[Pythonのテストフレームワーク] 目次: Python最近Pythonを触ることが増えたのでテストについて調べようと思い...」
  • link 24年11月2日
    すずき (11/15 23:25)
    「[Python - まとめリンク] 目次: Python一覧が欲しくなったので作りました。 スクリプト言語始めました(Pyth...」
  • link 20年5月10日
    すずき (11/15 23:24)
    「[Pythonの文字置換APIは変な名前] 目次: PythonPythonの文字列置換は "string".replace(...」
  • link 24年2月7日
    すずき (11/15 23:23)
    「[複数の音声ファイルのラウドネスを統一したい] 目次: PythonPCやデジタル音楽プレーヤーで音楽を聞いていると、曲によっ...」
  • link 13年7月2日
    すずき (11/15 23:22)
    「[スクリプト言語始めました(PythonとRubyでNクイーン問題)] 目次: ベンチマーク目次: Pythonスクリプト言語...」
  • link 23年9月18日
    すずき (11/15 23:22)
    「[一覧の一覧 - まとめリンク] 一覧の一覧、まとめのまとめが欲しくなったので作りました。OS、アーキテクチャ系。目次: An...」
  • link 13年10月1日
    すずき (11/15 23:21)
    「[JetBrains PyCharm 3.0リリース] 目次: PythonPyCharmがメジャーアップデートされ PyCh...」
  • link 22年7月8日
    すずき (11/08 23:28)
    「[マンガ紹介 - まとめリンク] 目次: マンガ紹介面白かった漫画の紹介です。知名度はあまり気にせず紹介します。5作品乙女ゲー...」
  • link 24年10月31日
    すずき (11/04 15:17)
    「[DENSOの最終勤務日] 最終勤務日でした、入門カードや会社のPCを返却してきました。在籍期間はNSITEXE(品川のオフィ...」
  • link 24年10月30日
    すずき (11/02 20:33)
    「[マンガ紹介] 目次: マンガ紹介お気に入りのマンガ紹介シリーズ。最近完結した短めの作品を紹介します。マイナススキル持ち四人が...」
  • link 19年3月28日
    すずき (11/02 13:27)
    「[マンガ紹介] 目次: マンガ紹介お気に入りのマンガ紹介シリーズ。こわもてかわもて(全2巻、2019年)(アマゾンへのリンク)...」
  • link 21年6月20日
    すずき (11/02 13:22)
    「[読書一生分が93万円?] 目次: マンガ紹介書籍通販のhontoがこんなキャンペーンをやっています。honto読書一生分プレ...」
  • link 17年10月27日
    すずき (11/02 13:11)
    「[異世界&最強系漫画の種類] 目次: マンガ紹介少し前にアニメ化されて盛り上がって(おそらく負の方向に…)いた「...」
  • link 24年10月28日
    すずき (10/30 23:49)
    「[Linuxからリモートデスクトップ] 目次: Linux開発用のLinuxマシンの画面を見るにはいろいろな手段がありますが、...」
  • link 24年10月24日
    すずき (10/25 02:35)
    「[ONKYOからM-AUDIOのUSB DACへ] 目次: PCかれこれ10年以上(2013年3月16日の日記参照)活躍してく...」
  • link 24年7月25日
    すずき (10/25 02:24)
    「[OpenSBIを調べる - デバイスツリーの扱い(別方法)] 目次: LinuxOpenSBIのブート部分を調べます。Ope...」
  • link 24年8月7日
    すずき (10/25 02:23)
    「[Debian独自の挙動をするQEMUとbinfmt_misc] 目次: Linux前回はbinfmt_miscの使い方や動作...」
  • link 24年9月9日
    すずき (10/25 02:22)
    「[GDBの便利コマンド] 目次: LinuxGDBは便利ですが、少し使わないでいるとあっという間にコマンドを忘れます。便利&使...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDFファイル RSS 1.0

最終更新: 11/19 01:04