東方算程譚

Oriental Code Talk ── επιστημηが与太をこく、弾幕とは無縁のシロモノ。

目次

Blog 利用状況

ニュース

著作とお薦めの品々は

著作とお薦めの品々は
東方熱帯林へ。

あわせて読みたい

わんくま

  1. 東京勉強会#2
    C++/CLI カクテル・レシピ
  2. 東京勉強会#3
    template vs. generics
  3. 大阪勉強会#6
    C++むかしばなし
  4. 東京勉強会#7
    C++むかしばなし
  5. 東京勉強会#8
    STL/CLRによるGeneric Programming
  6. TechEd 2007 @YOKOHAMA
    C++・C++/CLI・C# 適材適所
  7. 東京勉強会#14
    Making of BOF
  8. 東京勉強会#15
    状態遷移
  9. 名古屋勉強会#2
    WinUnit - お気楽お手軽UnitTest

CodeZine

  1. Cで実現する「ぷちオブジェクト指向」
  2. CUnitによるテスト駆動開発
  3. SQLiteで組み込みDB体験(2007年版)
  4. C++/CLIによるCライブラリの.NET化
  5. C# 1.1からC# 3.0まで~言語仕様の進化
  6. BoostでC++0xのライブラリ「TR1」を先取りしよう (1)
  7. BoostでC++0xのライブラリ「TR1」を先取りしよう (2)
  8. BoostでC++0xのライブラリ「TR1」を先取りしよう (3)
  9. BoostでC++0xのライブラリ「TR1」を先取りしよう (4)
  10. BoostでC++0xのライブラリ「TR1」を先取りしよう (5)
  11. C/C++に対応した、もうひとつのUnitTestFramework ─ WinUnit
  12. SQLiteで"おこづかいちょう"
  13. STL/CLRツアーガイド
  14. マージ・ソート : 巨大データのソート法
  15. ヒープソートのアルゴリズム
  16. C++0xの新機能「ラムダ式」を次期Visual Studioでいち早く試す
  17. .NETでマンデルブロ集合を描く
  18. .NETでマンデルブロ集合を描く(後日談)
  19. C++/CLI : とある文字列の相互変換(コンバージョン)
  20. インテルTBBによる選択ソートの高速化
  21. インテルTBB3.0 によるパイプライン処理
  22. Visual C++ 2010に追加されたSTLアルゴリズム
  23. Visual C++ 2010に追加されたSTLコンテナ「forward_list」
  24. shared_ptrによるObserverパターンの実装
  25. .NETでマンデルブロ集合を描く(番外編) ── OpenCLで超並列コンピューティング
  26. StateパターンでCSVを読む
  27. 状態遷移表からStateパターンを自動生成する
  28. 「ソートも、サーチも、あるんだよ」~標準C++ライブラリにみるアルゴリズムの面白さ
  29. インテルTBBの同期メカニズム
  30. なぜsetを使っちゃいけないの?
  31. WPFアプリケーションで腕試し ~C++でもWPFアプリを
  32. C++11 : スレッド・ライブラリひとめぐり
  33. Google製のC++ Unit Test Framework「Google Test」を使ってみる
  34. メールでデータベースを更新するココロミ
  35. Visitorパターンで遊んでみたよ
  36. Collection 2題:「WPFにバインドできる辞書」と「重複を許す検索set」
  37. Visual C++ 2012:stateless-lambdaとSQLiteのぷち拡張
  38. 「Visual C++ Compiler November 2012 CTP」で追加された6つの新機能

@IT

  1. Vista時代のVisual C++の流儀(前編)Vista到来。既存C/C++資産の.NET化を始めよう!
  2. Vista時代のVisual C++の流儀(中編)MFCから.NETへの実践的移行計画
  3. Vista時代のVisual C++の流儀(後編) STL/CLRによるDocument/Viewアーキテクチャ
  4. C++開発者のための単体テスト入門 第1回 C++開発者の皆さん。テスト、ちゃんとしていますか?
  5. C++開発者のための単体テスト入門 第2回 C++アプリケーションの効率的なテスト手法(CppUnit編)
  6. C++開発者のための単体テスト入門 第3回 C++アプリケーションの効率的なテスト手法(NUnit編)

AWARDS


Microsoft MVP
for Visual Developer - Visual C++


Wankuma MVP
for いぢわる C++


Nyantora MVP
for こくまろ中国茶

Xbox

Links

記事カテゴリ

書庫

日記カテゴリ

2010年8月8日 #

なんとなくOpenCLなるものを

お散歩がてら横浜近くの本屋さん:有隣堂@関内をぶらついてきました。
# ココは文具の品ぞろえもよろしく、お気に入りです。

なんとはなしに買ってきた「OpenCL入門」←衝動買いっす。

いやね、お友達から「CUDAやんね?」ってお誘いを受け、グラボ(GeForce9800GTS)まで借りてたですよ。
ところがそのグラボ、こんがり焼けちゃいまして。
かわりに買ったのがRADEON HD5670積んだやつ。能力的にはとんとんかな体感では。

結局CUDAに触ることなくNVIDIAからATIに転んだわけで、
CUDAのお誘いに乗ることができず少なからず負い目を感じておったわけっす。

その罪滅ぼし、てーことでもないけどOpenCLならCUDA/ATI-streamを包含すっからちぃとは言い訳もたつんでないかと。
それにGPGPU絡みはCUDAが先行してたんでATIユーザには情報がまだ少ないポ。
僕が触ればちっとはお役に立てんでないかと。

まずは OpenCL 開発前準備 (ATIのグラボ持ってる人向け)

1. ATI Stream のSDK入手とinstall
 AMDのサイト: ATI Stream Software Development Kit (SDK) v2.1 から SDKを拾ってくる。
 各種環境に合わせたSDKがあるんでテケトーに選んでくだち。
 僕は Vista/Win7版の32bit/64bitの両方落としといたです。
 開発環境はVS2008となってますがVS2010でも問題なさげ。
 ATI Streamで遊べるGPUリストもこのページに載ってるんでざっくし確認するがよいー(RADEON HD4xxx/5xxxなら大抵OKみたいです)。
 インストールはインストーラが上がってくれるんで[次へ]ボタンを突っついただけです。

2. コンパイル・オプションを調べる
 SDKに同梱されてたサンプル・ソリューションを開き、いくつかbuild/実行して動くのを確認。
 しかるのちやおらプロジェクト・プロパティこじあけてコンパイル・オプションを眺める。
 いやさ、いちいちVS立ち上げるよかテキストエディタとコマンドライン・コンパイラでちまちま
 いぢりたいこともあるんでね。
 ...どうやらSDKインストールした時点で環境変数 ATISTREAMSDKROOT が定義されたみたい。
 ここらへんの情報を基に build.bat をこしらえた:

  set INCDIR="%ATISTREAMSDKROOT%include"
  set LIBDIR="%ATISTREAMSDKROOT%lib\x86"
  cl -EHsc -I%INCDIR% %1 %2 %3 %4 %5 OpenCL.lib -link -libpath:%LIBDIR%

 こんなのをテキトーに掘ったディレクトリ d:\work\OpenCL に置く。

3. おためし
 買ってきた「OpenCL入門」のサポートページからサンプルをひろって解凍。いっちゃん最初のサンプル main.cpp をさっきのディレクトリにコピっていきなりbuildを試みる。

d:\Work\OpenCL>build main.cpp
d:\Work\OpenCL>set INCDIR="C:\Program Files (x86)\ATI Stream\include"
d:\Work\OpenCL>set LIBDIR="C:\Program Files (x86)\ATI Stream\lib\x86"
d:\Work\OpenCL>cl -EHsc -I"C:\Program Files (x86)\ATI Stream\include" main.cpp
       OpenCL.lib -link -libpath:"C:\Program Files (x86)\ATI Stream\lib\x86"
Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 for 80x86
Copyright (C) Microsoft Corporation.  All rights reserved.

main.cpp
Microsoft (R) Incremental Linker Version 10.00.30319.01
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:main.exe
"-libpath:C:\Program Files (x86)\ATI Stream\lib\x86"
main.obj
OpenCL.lib

 なんかできたよ。実行してみっか:

d:\Work\OpenCL>main
Number of platform(s) : 1
Platform profile   : FULL_PROFILE
Platform version   : OpenCL 1.0 ATI-Stream-v2.1 (145)
Platform name      : ATI Stream
Platform vendor    : Advanced Micro Devices, Inc.
Platform extensions: cl_khr_icd

...さっくりイケちゃったみたい。出だし好調っすねー。

posted @ 23:41 | Feedback (2)