そろそろ User Mode Scheduler と DirectCompute を使ってみようか (1)
1年半前に紹介したものの放置しっぱなしだった、User Mode Scheduler 再びです。
実は Windows 7 RTM, Windows 2008 R2 RTM における UMS (User Mode Scheduler) には yield時にリソースリークが起きる可能性があり、そのことが Microsoft Visual Studio 10.0/VC/crt/src/UMSFreeVirtualProcessorRoot.cpp にも書かれています。
関連する事項として “Visual Studio 2010 SP1 Interim Fix List - Jason Zander's WebLog - Site Home - MSDN Blogs” でも触れられている通り、
https://blogs.msdn.com/b/jasonz/archive/2010/12/20/visual-studio-2010-service-pack-1-beta-feedback.aspx
Visual Studio 2010 VC++ Concurrent Runtime libraries leak memory
https://connect.microsoft.com/VisualStudio/feedback/details/560544
も解消される見込みとなりました。これで安心して UMS を活用できるようになったわけです。
また、素晴らしいタイミングで AMD の E-350, E-240, C-50 そして、C-30 (DirectX 11 対応、シェーダー数 80) が発表されました。これは RADEON HD5450 に相当するものらしいのですが、RADEON HD4850 を購入してファンの騒音が許せず、HD3450 を使い続けていた私としては複雑な気分でもありますが…。
あれだけ CPU の周波数の向上は鈍化傾向にあると言い続けておきながら、TDP の限界に挑むとは思いもよらず。2011年のパフォーマンスデスクトップは 4物理コアまたは、4論理コア (SMT) + CPU 内蔵グラフィックスといった傾向になるのでしょうか。
さておき、ついに内蔵グラフィックスでも DirectCompute を利用したり、CPU側でも UMS による軽量な並列化が可能になったりと、ネイティブもまだ捨てたものじゃないな~?といった状態がようやく実現されつつあります。
MSDN Magazine Jan.2011 「データ処理: 並列処理とパフォーマンス」に思うこと (1) も、ちまちまと進めて参りますが、CPU と GPU が 1つの石に載るこの時代も取り上げないわけにはいきませんよね。
お財布が厳しいところですが、E-350 あたりを入手して、CPU + APU の可能性について探っていこうと思います。