タグ

algorithmとcudaに関するmanabouのブックマーク (3)

  • 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
  • CUDAによるバンディング低減フィルタの高速化(2) - Fixstars Tech Blog /proc/cpuinfo

    このブログは、株式会社フィックスターズのエンジニアが、あらゆるテーマについて自由に書いているブログです。 前回の続きです。メモリアクセス周りをもう少し見てみましょう。 カーネル内でメモリアクセスしてるデータは、乱数表と入出力画像です。このうち、読み書きデータ量の多い入出力画像を見てみます。画像のデータ型はPIXEL_YCです。これはAviUtlのフィルタ処理におけるデータ型で、以下のように定義されています。 typedef struct { short y; short cb; short cr; } PIXEL_YC; 画像データはこれの配列なので、構造体の配列(Array of Structures, AoS)です。AoSはCUDAが苦手なデータ構造です。なぜならコアレスアクセスができないからです。来、教科書通りのやり方なら、ここでAoSをSoA(Structure of Array

    CUDAによるバンディング低減フィルタの高速化(2) - Fixstars Tech Blog /proc/cpuinfo
  • 全点対間最短路を高速に求める - Fixstars Tech Blog /proc/cpuinfo

    それぞれのプロセッサ用の愚直な実装と比べてみると、CPUでは約25倍、GPUでは約42倍の性能向上となりました。 また、CPUでは限界の65%程度、GPUでは限界の80%程度の性能を出すことができています。 なんとなくではありますがCPU版はもう少し詰められそう、GPU版はCUDA Cでここから先はきつくなりそうといった気がします。 まとめ ワーシャル-フロイド法を通して、同じハードウェア・同じ計算量であっても性能に大きな差が出る例を示しました。 ICPCのようなコンテストではあまり定数倍のチューニングは重要視されませんが、このような方法でのアルゴリズムの高速化にも興味を持っていただければ幸いです。 参考文献 [1] Joon-Sang Park, Michael Penner and Viktor K Prasanna. “Optimizing graph algorithms for

    全点対間最短路を高速に求める - Fixstars Tech Blog /proc/cpuinfo
  • 1