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

追記

ごめん32bit版だとCUDA動いてなかったかも。 新しいのだと修正したはずだから http://d.hatena.ne.jp/w_o/20150619#1434643288 を参照してください。

デバッグprintfの仲間達

printfは複雑な挙動をするので信頼できないことが多い。おいつめられると以下のようなものをprintfがわりに使う。 デバッグwhile(1) コードが止まるかどうかを判定することでフローを確認する。マシン語数命令で完結するのでかなり信頼できる。OS無し環境で…

GCN

は?local memory 32KBしかないが…http://developer.amd.com/tools-and-sdks/opencl-zone/amd-accelerated-parallel-processing-app-sdk/opencl-optimization-guide/#50401334_pgfId-481974 All AMD Southern Islands GPUs contain a 64 kB LDS for each com…

AMD : register 64KB lmem 64KB ごめんこれ間違い。レジスタ256KBあったわ。256register x 256item x 4byteだった。これなら、256+64=320KBで、574KBのweightの半分が載せられるので、演算メモリ比は1000:7までいけそう。まあ効率30%はいけるかな...

並列プログラミングに目覚めた!スレッド起動レイテンシ14.5msec のカスペル先生から受けたひどい仕打ち

#include <thread> #include <windows.h> #include <vector> struct Obj { HANDLE ev; std::thread t; Obj(HANDLE ev, std::thread &&t) :ev(ev), t(std::move(t)) { } }; std::vector<Obj> threads; static double sec() { LARGE_INTEGER v,f; QueryPerformanceFrequency(&f); QueryPerforma</obj></vector></windows.h></thread>…

いや

128x128x9 = 147456 = 3SM あればレジスタに乗る。outputPlane を 65535(強いNVIDIA)レジスタあるマシンでは3つか4つ、32768(弱いNVIDIA)マシンでは8ぐらい、16384(AMD)では16ぐらいに分ける これが正解な気がしてきた。レジスタが無限にあるなら、演算:メモ…

OpenCL版

今の状況を書いておくと、https://github.com/tanakamura/waifu2x-converter-cpp/blob/gpu/src/modelHandler_OpenCL.clいちおう動いている、が、FMA版よりまだ遅い。i7 4700MQ vs GTX 765M でFLOPS値 200 : 80 ぐらい 765M は 1300GFLOPS なので効率6%ぐらい…

追記06/11 : waifu2x OpenCL 版

http://int.main.jp/files/waifu2x-converter_x64_20150611_2.exe多分良い感じになったはず。Linuxでしか動作確認していないので動かない可能性は残っている。(Kaveri 用のWindows入れたHDDどれかわからなくなってるので…)親切な人いたら、動いたかどうか(と…

waifu2x はやくした

なんか社内チャットでhttps://github.com/WL-Amigo/waifu2x-converter-cppをはやくしろというメッセージを受信したのでやった。https://github.com/tanakamura/waifu2x-converter-cpphttp://int.main.jp/files/waifu2x-converter_x64.exeコードの大半は、@WL…

更新06/13

http://int.main.jp/files/waifu2x-converter_x64_20150613.exeR9 290Xとか使ってる廃人環境向けに変更した。具体的には最初と最後のイテレーションをOpenCLにしている。最初と最後は全体の10%以下かつメモリネックなので、あんまりやる気が出なかったのだけ…

続き

一区切りついたので http://d.hatena.ne.jp/w_o/20150616#1434392833 に書いた。

追記

32bit版 http://int.main.jp/files/waifu2x-converter_x86.exeあとAVXあればFMAなしでも動くようになってるはず(Sandy以降)。あんまチューンしてないので期待しないで。まーチューンしてないというなら、VCがGCCより悲しいコードを出していてそもそもWindows…

追記06/09

http://int.main.jp/files/waifu2x-converter_x64_staticgcc.exe本家のブロック分割をマージした。大きいファイルでも動くはず。その影響でちょっと遅くなったのでそれをリカバーするためにOpenCVごとGCCでビルドしなおした。960x540 でブロック分割しないと…

関東GPGPU勉強会 #2

というわけで、せっかくだから記録を書いておくと…覚えてるわけが無いのだった。(http://togetter.com/li/511911 多分こっちを見たほうが情報量がある) このときは、Mali-T604 は19.0GFLOPSと書いてるのだけど、どこで見たか忘れたけど、72か74ぐらいが理論…

clminibench for Android

上のをUI作るまえに復習しようと思って、clminibench をちゃんとリリースしておいた。https://play.google.com/store/apps/details?id=main.jp.Int.clminibench作ったとき一緒に作った資料↓。http://int.main.jp/txt/mali-chang.pdfもう二年前の話か…ていう…

Cortex-A53

(3ヶ月くらいまえに)携帯あたらしくしてCortex-A53(ただし KitKat なので32bit)にしたのだけど、全然性能はかってないのでなんかはかろうと思ってhttps://github.com/tanakamura/instruction-benchのARM 版をつくったhttps://github.com/tanakamura/ude-benc…

みんな意外とauto vectorizationとか信用してて愕然とする

http://d.hatena.ne.jp/shi3z/20150422/1429659958 の反論見てると、「いまどきはコンパイラがSIMDにしてくれるし」みたいなのがそれなりにあるのだけど、僕は基本的に自動ベクトル化とか信用していないので、私は考えが古い人間なのかと思って結構ショック…

登山してると日本人も知らない人でも挨拶するのでは?という反論をもらった。確かに…

コンプレックスと標語

というわけでアメリカに来ている。前回は2weeks来ていて、もうずっとはよ帰りたい気持ちでいっぱいだったのだけど、今回は、2monthで、諦めが付いて逆に帰りたいという気持ちはあんまり無くて大分楽だ。 こっちに来て、広告とか見ていて思うのだけど、集団社…

http://d.hatena.ne.jp/w_o/20141225#1419437605 一貫性の空間がグローバルに一個しかないから、まだ今のCPUに依存してしまってる気がするんだよな。 良い例があった。OpenCL C 2.0 では、SVMというのがあって、デバイスを超えてメモリ共有できるが、ここで…

また歯医者

なんか歯が痛くなってきたので、歯医者へ行った。 前、歯医者行ったときに、神経抜く必要があって、https://twitter.com/tanakmura/statuses/229149856487325696そのショックで、色々調べたので、歯がわかるぐらい痛いときは、もう内部までやられていてかな…

味噌汁gkgkはともかく味噌直接prprは良くないでしょさすがに…(prpr

横浜へ引っ越した

もう大崎飽きたので横浜へ引っ越した。 職場変わったのもあったけど、今日計測したら、移動時間が前の家とほぼ一緒だったので一体なんだったのか。 http://d.hatena.ne.jp/w_o/20111010#1318222995二度と自炊はしないという誓いを破って自炊しようと思った。…