タグ

algorithmとcpuに関するmanabouのブックマーク (5)

  • CPUとGPUのマルチスレッディングの違いについて - arutema47's blog

    "Locality is efficiency, Efficiency is power, Power is performance, Performance is King", Bill Dally マルチスレッディングとは? CPUGPUのマルチスレッディングの違いをブログにまとめていたけど例によって誰も興味なさそう— arutema47 (@arutema47) 2021年8月16日 つぶやいたら読みたい方が多そうだったので完成させました。 マルチスレッディングとはメモリ遅延を隠蔽しスループットを上げるハードウェアのテクニックです。 ただCPUGPUで使われ方がかなり異なるため、その違いについて考えてみる記事です。 (SIMDについて並列プログラミングの観点から触れるべきでしたが、時間無いマルチスレッディングに注目するため初版では省きました。) 記事について 記事はCPUとG

    CPUとGPUのマルチスレッディングの違いについて - arutema47's blog
  • スーファミサウンドの裏で何が行われているか - ポルノアニメ

    qSPCの開発も山場を越えた感があるのでたまには進捗報告以外の話を…… 多分、普段は宇宙語が書いてあるブログだと思って見てない人が多いと思うので前提知識を手短に書いておくと: スーパーファミコンにはメインのCPUと別にサウンド用のCPUが乗っている オーディオデバイスにはサウンドCPUからしか触れない サウンドCPUはメイン側とは独立したメモリを抱えている このメモリは64KBしかない メインCPUとサウンドCPUのやり取りには、あまり速くない通信路を使う必要がある という制約があるので、いかにデータをコンパクトにして、最低限の物だけをサウンドCPUに送るかという所で開発者の腕が試されることになる。で、プロの技はどんなもんだろうかと、メモリダンプを見ながら定番のグラディウスIIIをやってみると…… ボスを倒して、ステージが変わるタイミングで一瞬画面が止まるので、ここで曲を入れ替えていると思

    スーファミサウンドの裏で何が行われているか - ポルノアニメ
  • 『プロセッサの性能を引き出すのは大変だよというお話(行列積チューニング)』へのコメント続き - Qiita

    100401600: c4 c2 7d 19 77 c8 vbroadcastsd -0x38(%r15),%ymm6 100401606: c4 c1 4d 59 ba c0 24 vmulpd -0xdb40(%r10),%ymm6,%ymm7 10040160d: ff ff 10040160f: c5 d5 58 ef vaddpd %ymm7,%ymm5,%ymm5 100401613: c4 c2 7d 19 7f d0 vbroadcastsd -0x30(%r15),%ymm7 100401619: c4 41 45 59 82 00 44 vmulpd -0xbc00(%r10),%ymm7,%ymm8 100401620: ff ff 100401622: c4 c1 55 58 e8 vaddpd %ymm8,%ymm5,%ymm5 100401627: c4 42

    『プロセッサの性能を引き出すのは大変だよというお話(行列積チューニング)』へのコメント続き - Qiita
  • いまどきのmatmul

    概要 経緯 : http://d.hatena.ne.jp/w_o/20141021#1413893835 Host 1700msec、Epiphany 170msecとかになって、さすが、16coreだから10倍速いみたいな話になったが、 経験的に、こういうのってナイーブCと比較してるから、普通にマルチスレッド & NEON使えば、10倍差ぐらいすぐはやくなんじゃね? と、思ってNEON + スレッド化matmulを探したのだけど、見当たらなくて、探すより書いたほうがはやそうだったので書いた。 というのがあって、今更matmulを実装したのでその話について書く。 1ノード Haswell 正方行列 単精度 サイズは128の倍数だとか制限付けてもよい という条件でどうやって効率上げていくかについて説明する。 今日の結果は N = 2000〜3000 で効率 80% ぐらい。 まあ多分もっと

    いまどきのmatmul
  • 離散フーリエ変換を用いた多倍長乗算の話

    はじめに CPU のレジスタに入り切らないような巨大あるいは高精度な数値データの演算を行うとき、四則演算をやるにもそのためのルーチンを用意しなければならない。(*1) ここでは、「CPU のレジスタではちょっとはみ出す」という程度の数値データのことは考えない。何万桁、何百万桁という普通では目にしないような巨大な数値データを扱う場合に掛け算をどうすればよいかについて考える。(*2) はっきり言ってそんな巨大な数が扱えたところで日常生活にこれといった恩恵があるわけではないが、敢えて常識を覆すことによって掛け算の質が見えてくるかも知れない……などと論文調にこじつけてみたけれど、実は単なる好奇心だったりする。ただ、常識が覆されるのは事実だ。私は実際に巨大な数の計算を必要としているのではなくて、常識を覆えすことに快感を覚えるのである。(*3) 先に断っておくと、以下の解説を全部理解するには

  • 1