clflushopt を使ってキャッシュフラッシュを高速にしよう

キャッシュフラッシュに苦しんでいる人も世の中にはたくさんいる。そういう人を救うために、Skylake からはclflushopt という命令が新設された。 これまでは、clflush という命令があって、これを使うとキャッシュフラッシュができた。clflushoptは、これよ…

無からはじめるFPGAプログラミング(2)

1 : http://d.hatena.ne.jp/w_o/20160518#1463571239 さて、PS7を置いたら、Synthesizeをしよう。Synthesizeは、ボタンをポチーとするとできる。 Synthesizeすると、netlistができる。あんまりXilinx以外は知らないのだけど、Xilinx では、複雑な演算を、FPG…

無からはじめるFPGAプログラミング (1)

色々あって、Zynqを使うことになって、色々つらい思いをしている。 VivadoもQuartusもはっきり言ってひどいとしか言いようがない。HDLで書いたモジュールをTcl(!?!?今は21世紀だぞ??)でラップして作ったブロックをくっつけていくという設計は狂っているし、…

blk_mq デバイスドライバを作る Part2 (終)

Part1 : http://d.hatena.ne.jp/w_o/20160511#1462967279 blk_mq では、APIとしては大きく二点変更がある。 普通のblockでは、request() コールバックにキューごと渡されてきたが、blk_mq では、リクエストごとにコールバックが呼ばれる blk_xx みたいな API…

blk_mq デバイスドライバを作る Part1

Part2 : http://d.hatena.ne.jp/w_o/20160516#1463367951残念ながら馬4th editionは来年の12月に出ることが決まったので、blk_mq ドライバの作りかたは、ソースを読むしかないのだった。 以下、簡単にblk_mqドライバの作りかたを残しておく。 まず、blk_mq …

マシン更新

H170-PRO Gaming Crucial Ballistix Sport 8Gx4, 32GB Kit EVGA SuperNOVA 750 G1 80+ GOLD, 750W i7-6700 (前から使ってる) HTS54505 (前から使ってる 2.5' 250GB) アイドル24W ロード時ははかってない(そんなにロードしないので)そんなにロードしないんだ…

萌え絵と食事

台湾料理が好きだという気がした。 料理が口に合う距離は、物理的な距離と比例している気がする。日本料理が口に合うのは当然として、次に韓国料理、中華料理が好み近くて、東南アジア系はまあ好きだけど、ちょっと異国の味がする。アメリカ料理は、まあ別に…

FOR_EACH_なんとか マクロ

昔GCCのコード読んだときに、コードに、DEF_XX(TAG, "name") みたいなテーブルを作ってそれを読む箇所でDEF_XX マクロを定義して、Cのプリプロセッサだけでコンパイル時テーブルを作るみたいなテクニック (https://github.com/gcc-mirror/gcc/blob/master/gc…

_mm256_maskload_ps はマスクしてるとSEGVしない

ちゃんと理解してなかったので確認した。 #include <stdio.h> #include <immintrin.h> #include <sys/mman.h> int main() { char *p = mmap(0, 2048*1024*2, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, 0, 0); mprotect(p + 2048*1024, 2048*1024, PROT_NONE); __m256 v = _mm256_set1_</sys/mman.h></immintrin.h></stdio.h>…

型の無い言語は使いたくない

と、言うと、「いや、xx言語にも型はある」とか、言われる場合が多い。というかさっき言われた(日記)まあ、言いたいことはわかるし、そういう議論も別に嫌いではないけど、「型の無い言語は使いたくない」と言うとき、話したいのは、そういう議論ではないん…

自動車を運転する

大分乗れるようになってきたな。(慢心からの死亡事故フラグ) なんか近いうちにまたUS行くらしくて(いつからだっけ…あ、今日からだった…)、今回はいきなり空港ホテル間1.5h乗ることになったので大丈夫かいな?と思って、1hぐらい乗ってきた。 公共交通機関が…

腹痛が痛い

一般的には頭痛が痛いというのでは… 人間の理解力だと、「頭痛がある」とか言うより「頭痛が痛い」と言ったほうが理解しやすい気がするのでまあいいんではないの?PM 13:00 みたいなもん。

GPGPUは難しいと主張するのをやめよう 〜GPGPUは難しくない 2015冬〜

今年のテーマは「何故HadoopとかMapReduce系は簡単だという風潮があるのにGPGPUは難しいという風潮になるのか?」だった。 別にテーマだったと言っても何かやったわけではないけど… それで「GPGPUも簡単だと思う」みたいなことを書いてたら https://twitter.…

あけましておめでとうございます(投稿周期を考えるともう正月まで投稿しなさそうなのでフライング)

32

32

解説は…まあGPU版も動いたら考えよう。簡単に説明するとブロッキングを頑張った。 前が for (yi=0; yi

https://github.com/tanakamura/waifu2x-converter-cpp/tree/simd_improveやる気が出てきたのでチューニングしなおした。(バイナリは http://int.main.jp/files/waifu2x-converter_x64_1101.zip ) cpu before[GFLOPS] after[GFLOPS] improvements[%] efficie…

広告の位置

なおした。勝手に変えるなよという気がするがおかげで前よりそれっぽくなった気もする。あとこのスタイルもう9年以上使ってるし変えたい。

色々

OpenCV 無くてもビルドできるようにしてAndroid NDK用にビルドできるようにした。w2xconv_apply_filter_y 以外は動かないので今のところ完全に計測用。まあWindowsでもビルドしやすくなったと思うので自分でビルドしたい人はこの機会に…https://github.com/t…

https://github.com/tanakamura/waifu2x-converter-cpp/commit/9439d109f12d8767883dcbb851369b62d13496c0#diff-537df786c04c13fc2b123301d7f60928R143 やっつけでneonも対応した。まあほんとはキャッシュサイズ小さいCPU用に修正しないといけないんだが…や…

最内ループからはじめる深層学習

http://int.main.jp/txt/waifu2x.htmlまあもうコード大きく変更することはないだろうしそろそろまとめていいかと思ったのでまとめた。もともと、5/30にはじめて、2日実装、1日まとめ書いて、いまどきのチューニングはこうする、という手順の紹介にする予定だ…

waifu2x-converter-cpp OpenCL RGB版

http://int.main.jp/files/waifu2x-converter_x64_0629_02.zip (libgcc_s_seh-1.dll が無いエラーが出てた人は02使ってください)http://int.main.jp/files/waifu2x-converter_x86_0629.zipはい。 -model_dir で、models_rgb を指定するとRGBになる(デフォル…

更新 07/26

AVX無いと遅いのをなんとかしようと思ってSSE版を作ろうと思ったのだけど、最近のPentium, CeleronとかだとSSEよりGPUのほうがはやい気がしたので、AVXが無い場合はOpenCLを使うようにしてみた。http://int.main.jp/files/waifu2x-converter_x64_0726.zip ht…

追記 07/06

w2xcr.exe ブロックサイズ指定できるようにした。http://int.main.jp/files/waifu2x-converter_x64_0706.zip http://int.main.jp/files/waifu2x-converter_x86_0706.zipなんかうまく動かないという人は、install.js の var WshShell = WScript.CreateObject(…

更新0719

http://int.main.jp/files/waifu2x-converter_x64_0719.zip http://int.main.jp/files/waifu2x-converter_x86_0719.zip w2xconv_convert_rgb_f32 追加 (RGBモデルのみ、rgbをfloatで入れられるAPIが欲しいと言われたから入れただけなので多分大半の人には影…

11/01

http://int.main.jp/files/waifu2x-converter_x86_1101.ziphttp://int.main.jp/files/waifu2x-converter_x64_1101.ziphttp://d.hatena.ne.jp/w_o/20151101#1446350337 ではやくした分を入れた。Haswell なら1.5倍ぐらい。FMA ついてるCPUなら一昔前のGPUと対…

更新 08/11

SSEの対応すぐ入れる方法思い付いたので入れた。http://int.main.jp/files/waifu2x-converter_x64_0811.zip http://int.main.jp/files/waifu2x-converter_x86_0811.zip以下のような優先度で処理する CUDA AMD GPU OpenCL FMA AVX Intel GPU OpenCL SSE (SSE3…

更新 10/18

http://int.main.jp/files/waifu2x-converter_x86_1018_02.zip (すいません、ビルドミスっていてAVXが無効になっていたので02を使ってください) http://int.main.jp/files/waifu2x-converter_x64_1018.zip更新が溜まってきたので更新。 https://github.com/t…

10/19

http://int.main.jp/files/waifu2x-converter_x86_1019.ziphttp://int.main.jp/files/waifu2x-converter_x64_1019.zipごめんふたつミスってたので修正 w2xcr.exe が jpg のシグネチャ間違えていたのでjpg入れても動かないことがある w2xcr.exe が AVX より G…

更新 08/13

http://int.main.jp/files/waifu2x-converter_x86_0813.ziphttp://int.main.jp/files/waifu2x-converter_x64_0813.zip sse 動いていなかったので修正。(確認してないけど多分AVXも動いてなかったんじゃないかなぁ…) 恥ずかしいミスを修正(https://github.com…