2014-01-01から1年間の記事一覧

C++ のメモリ一貫性モデルってなんか直感とあわない

最近C++11のコードを少し真面目に見てるのでメモリモデルとかもちょっと見たのだけど、なんか納得いかない。 C++のメモリモデルは、変数へのアクセス毎に、壁を作るのだけど、コード書いてる時の意識としては、「こっからここのアクセスは並びかえてもいいけ…

http://qiita.com/advent-calendar/2014/avx512はい。まあ余裕だったな。前(http://d.hatena.ne.jp/w_o/20130805 ) も似たようなこと書いたけど、「このぐらいのやる気ならコンスタントに出せるだろ」みたいな判断は年を取るごとに良くなってる気がする。(そ…

beignet

http://qiita.com/advent-calendar/2014/cuda_and_opencl の15日目が空いてたので書きました。 $ sudo apt-get install beignet clinfo $ sudo chmod a+rwx /dev/dri/card0 $ clinfo Number of platforms: 1 Platform Profile: FULL_PROFILE Platform Versio…

実機環境を作る シリアル編

「自作OS Advent Calendar 2014」の13日目です。(bits http://biosbits.org/ について書こうと思っていたが特に何もわからなかったのでやめた) いつも環境作るの面倒でやめてしまうのでこの機会にまとめておこうと思う。 まずシリアル使えるマザーボードとク…

http://qiita.com/advent-calendar/2014/avx512今月はこれを書いています。

つらい

もうつらいので退職しよう

31

31

構って欲しい時に送出されるメッセージ一覧表

msg_src msg_payload JK リスカ おっさん、じいさん どうせわしなんかはやく死んだらいいんだろ おばさん 私と仕事とどっちが大事なの SE 優秀なエンジニアの給料が安いのは会社の損失である 俺 もうつらいので退職しよう

訂正

図とか修正するの面倒なので放置してますが、0x8e000000 は (32,14)、0x8f000000 は(32,15) です。

parallella データ共有 後編

前回までのあらすじ : どうやら0x8f000000 にアクセスすると、eLinkに出るらしい。 さて、アドレスの下位20bit(1MB) が、コア内のアドレスを示すということは、上位12bitが、各コアのIDを示すということになる。この12bitを半分に割って、上位6bitがrow、下…

parallella データ共有

なんかのために何かを書いておこうと思う。 parallella でデータ共有する方法を通じて、parallella プログラミング環境への理解を深めたい。というか基本的にこういうの調べるときデータ共有の方法しか調べてない気がする。簡単に説明すると、 Epiphany側の…

年を取ると脳は衰えるか?

年を取った人が、「最近頭が回らなくなって」とか言うが、(どうでもいい話なので割愛)なので、あまり年を取って脳力が衰えるとかは信じたくないのだった。 と、思うのだが、トイレ行って手を洗わないで出ていく初老男性見るとその信念も揺らぎそう。毎日して…

__attribute__ ((aligned(16))) float data[1024]; int main() { int i = 0; for (i=0; i<(1024*1024*1024)/8; i++) { asm volatile ("vld1.32 {d0,d1}, [%0]\n\t" "vld1.32 {d2,d3}, [%0]\n\t" "vld1.32 {d0,d1}, [%0]\n\t" "vld1.32 {d2,d3}, [%0]\n\t" "v…

ひとり ARM tech なんとか

http://www.event-info.com/arm-seminar2014/明日だった。あとintel なんとか も 明日ですね。まあ別にこういうイベントって真面目系だから興味無いのだけど、せっかくなので Cortex A15も詰め詰めしよう。 A15 は今 37.2% で、これはA9より低い。なんで? …

http://www.7-cpu.com/cpu/Cortex-A15.htmlTLBミスかも?L1 32entry で L1ミスが12cycleだとつらい気がする。そうすると最内はもっと横に伸ばして6x2とかのほうがいいのか?かつK方向ループは16がいいの?というのは今はRが縦方向に128個ロードしていて、次…

結局

そこから改善しなかった

良くなった(肝心の良くなった時になにをやったか書かないやつ) まあでもこれは真理だと思う。口頭では何回か言ってるが、結局一番大事なのは気合と試行回数だから、文章書きながらとかそもそも無理だったのだ。 でもまだまだだな。なんかL2律速してる印象が…

そういやルーターちゃん再起動したときにipv6設定面倒で放置してるから俺のことは裏切り者リストに追加しておいてもらっていいよ。

matmul-bench 使いかた

基本的にはexeを実行するだけでよい。 出たFLOPSを見てニヤニヤする。 "-o a.csv" とすると、csvが出るので、これをexcelに貼ると、https://onedrive.live.com/view.aspx?resid=ECB59E566C2D71F1!4318&app=Excel&authkey=!AKCmyGT1nO0VfGIこういうグラフが描…

あと

そろそろ飽きてきたしWin用とAndroid用にUI作って終わりかな。

libmatmul-bench

ほい作った。http://int.main.jp/files/matmul-bench-w64.exe http://int.main.jp/files/matmul-bench-w32.exew32版はなんかomp入れるとsse版が動かなくてよくわからなかったのでw32版は1threadになっているので、w64版を使った方が良い。 あとインターフェ…

99.7msec

充実した週末だった。 しかしARMやりすぎたせいでCortexA15とSilvermontの差が開きすぎている。SSEも詰め詰めしたくなってくるな… あとFMA向けにチューンしすぎたせいでAVX版でレジスタスピルしている。

結局まだやってる

103.5msec…まあでもそろそろ限界感ある。

x86 fmaもTurbo Boost運がよければ300(75%)超えるようになってきた。

https://twitter.com/takehiro_t/status/525672008869085184 この情報もらってZynq Cortex A9 667MHz 2コアで123[msec]までいった。Epiphany16コアはサンプルのだと170[msec]なのでEpihanyとはなんだったのか。まああのサンプルもまだまだ良くできる気がする…

https://github.com/tanakamura/matmul-benchいちおうHaswellで(Turbo Boostありだけど)50%いった。まあx64版はとりあえずいいだろ。あとは 512x512 200msecの A9 版を 150msec にしたい(Epiphanyに勝てるまで) A9かなりよくわからないのでちゃんと理解する …

vs Parallella

なんか会社でParallellaを使ってみようみたいな流れになって使っていたのだが、(別に業務とは関係なく) https://github.com/adapteva/epiphany-examples/tree/master/apps/matmul-16 を動かして、Host 1700msec、Epiphany 170msecとかになって、さすが、16co…

beignet

あ、これ出力asm見れるのか。 Kernel BuilderはGPUだとasm見れないから諦めていた。 $ export OCL_OUTPUT_ASM=1 $ ./a.out <.. snip ..> hello's disassemble begin: L0: ( 0) mov(16) g2<1>:UW 0xffffUW { align1 WE_all 1H }; ( 2) mov(16) g2<1>:UW 0x0UW…

16.7msecでできる仕事

時間と金は絶対値を見るべきだと思う。 プログラムの高速化は、真面目にやると計測の問題になる。 高速化の作業は、実際にはプログラムの処理に対して、実際にかかっている時間が妥当なのかどうかを調べて、妥当でない場合は原因を調べるという、一種のデバ…

訂正

一ヶ月のフレーム数をまちがえていた