ページ 1 / 1
カーネルのソースプログラムの作り方が分かりません。
Posted: 2012年2月08日(水) 18:00
by kuro
Visual Studio C+ 2008 Express EditionでOpenCLのプログラムを作っているのですが、カーネルのソースプログラム、〇〇.cl というファイルの作り方が分かりません。
どなたか教えては頂けないでしょうか?
Re: カーネルのソースプログラムの作り方が分かりません。
Posted: 2012年2月08日(水) 18:10
by softya(ソフト屋)
今まで聞いていなかったのですがC言語に関しては、どのぐらいの知識がありますか?
Re: カーネルのソースプログラムの作り方が分かりません。
Posted: 2012年2月08日(水) 18:11
by kuro
かなり浅いです。ほとんど知識がありません。
Re: カーネルのソースプログラムの作り方が分かりません。
Posted: 2012年2月08日(水) 18:34
by softya(ソフト屋)
まずC言語を勉強しないとOpenCLのプログラムを書くことは難しいです。
本体側のプログラムは当然ながらC言語ですので入出力のためにはC言語でプログラムが組めないといけません。
OpenCLのclもC言語の文法で書きますし、更に並行実行やGPUの色々な知識がないと使いこなすことが出来ません。すごく勉強しないと満足に性能がでない可能性が高いです。
あとOpenCLの.clの基本的なルールについてはお持ちの本に書かれていると思います。たぶんC言語を知っている前提で。
たぶんkuroさんは、OpenCLで高速に計算させるのが目的だと思いますが、そのためにはまずC言語の基本理解が必要となります。
これは勉強なさってくださいとしか言えません。必要な本やC言語の勉強で分からないとは回答しますので遠慮せずに聞いて下さい。
Re: カーネルのソースプログラムの作り方が分かりません。
Posted: 2012年2月08日(水) 19:11
by kuro
ご指摘、ありがとうございます。
softya(ソフト屋)さんのおっしゃるとおり、まだまだ知識が足りていないのが現状です。
もっとC言語、並列実行やGPUについて知識を高めなければいけないと痛感いたしました。
より一層、勉強しようと思います。
softya(ソフト屋) さんが書きました:OpenCLの.clの基本的なルールについてはお持ちの本に書かれていると思います。
私の持っている本では、
「カーネルプログラムの拡張子が「cl」となっているが、これは慣例である。」
と書かれていました。
これは、ソースファイル>追加>新しい項目>C++ ソース コードを含むファイルを作成、より、ファイル名を〇〇.cl とする。
と解釈したのですがいかがでしょうか?
Re: カーネルのソースプログラムの作り方が分かりません。
Posted: 2012年2月08日(水) 19:21
by softya(ソフト屋)
kuro さんが書きました:これは、ソースファイル>追加>新しい項目>C++ ソース コードを含むファイルを作成、より、ファイル名を〇〇.cl とする。
それで良いと思います。
ここに追加しただけは実行されないのでプログラムで実行する様に記述する必要があります。
問題となっていたcalc.clが見つからないエラーの件を解決しないといけません。
Re: カーネルのソースプログラムの作り方が分かりません。
Posted: 2012年2月09日(木) 00:14
by niheran
そのcalc.clというファイルを
[あなたが今制作しているプロジェクト名].sln
のファイルと同じディレクトリに置くのはいかがでしょうか?
コード:
void preloadProgram(const char* filename)
{
cl_int status;
char *source = 0;
// ファイルからプログラムを読み込む
try {
source = loadProgramSource(filename);
} catch (MyError err) {
fprintf(stderr, "Error: %s\n", err.cstr());
throw MyError("failed to load compute program from file.", __FUNCTION__);
}
int main()
{
preloadProgram("calc.cl"); // カーネルプログラムの読み込み
//略//
}
Re: カーネルのソースプログラムの作り方が分かりません。
Posted: 2012年2月09日(木) 00:40
by niheran
上のは13行目の}が抜けていました
後、" *.cl "ファイルを何個も読み込もうとするとエラーがでるので、カーネル関数は一つのclファイルにまとめて書かないといけないようです
Re: カーネルのソースプログラムの作り方が分かりません。
Posted: 2012年2月09日(木) 09:49
by kuro
無事、カーネルのソースファイル自体の作り方が分かりました。
ありがとうございました。