トップ «前の日記(2017-06-10) 最新 次の日記(2017-06-13)» 編集

はじめてのにき

ここの位置付け

2004|11|
2005|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|

ToDo:


2017-06-12

_ まとまるくん

http://int.main.jp/txt/matmul/

を見ながら色々マネたり、その他いろんな方法でmatmulについての知見を深めた。

まず思ったのは、僕は本当に線型代数ダメやなーということで、もうなんかマジで行列の計算とかが正しく書けない。すぐに総当たりで色々やってみてテストが通ればOKみたいな感じになってしまう……「行列はギリギリ大丈夫だけど、3次元になるとサッパリわからなくなります、ゲヘゲヘ」みたいなこと言ってたけど、まあ2次元でもダメぽかった

知見と言ってもまあ常識と言って良いことなんだろうけど、僕はこういうの実感が伴ってないと生きないタイプなので……

  • 物理屋というか僕の記憶では mat * row-vec てのが基本だった気がするんだけど、 col-vec * mat が基本なのよね情報系。 row-vec * mat みたいな意味不明な絵を描いて……うーん〜おかしいな〜〜みたいなムダな時間を使いまくり。
  • 左辺の col-vec の方の row を増やすと batch が増えるてので使い勝手良いのはすごくよくわかった。
  • mat * mat は速い。 vec * mat は遅い(ぽい)。いやー batch 増やした方がいいと言われるわけやね。
  • mat * transpose(mat) は速い。これはうーんなるほどというか、普通にもっと知られてて良い、非常に有用な知見だと思ったが、そもそも僕の見識が足りないだけな気もする。
  • 僕は普段最速を目指したいとか思うことはなくて、滅多に無い比較的マイクロな最適化があったら良い状況でも、「まあだいたいメモリのアクセス順が飛ばないようにしときゃいいしょ…」くらいでそんなに悪くない。でもまあ中二病的な理由でもちょい知っておきたいなあと思ったのだけど、相変わらずそのへんの知見はイマイチ深まらなかった。
  • そもそも vec * mat で fma がスーパースカラにならん(たぶん)のはそんなもんなんだろうか……ちゃんと数勘定しないとなあという感じしかない

そんなこんな。

(02:26)

お名前:
E-mail:
コメント:
人生、宇宙、すべての答え
本日のリンク元

2017年
6月
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
1.gusmachine(2017-06-13 08:44)
search / home / index

全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。

shinichiro.hamaji _at_ gmail.com / shinichiro.h