2018年3月5日月曜日

Intel FPGAのOpenCLのオフラインコンパイル時にrestrictに関するエラーが出る

Intel FPGAでOpenCLを動かすためにゴニョゴニョいじっていたらこんなエラーに遭遇した.
とりあえず下記のように何も考えずにrestricを前につければ出なくなる.

(意味的には,引数にとってるポインタちゃんたちが同じ領域を示したりしないよっていう制約だった気がする.)

restrictを付ける付けないで,実行速度は1msecほど変化した.

付けない場合 -> 1.83933 [ms]
付けた場合 -> 0.95214 [ms]

※余談
カーネルの実行時間の計測に,clGetEventProfilingInfo()を使ってstart, endを計測.
しかし,計測してみると18446233763891.16797[ms] とか出てて,
なんじゃこりゃとか思ってendの中身を見ると,endに何も入ってないやないかーい😇
カーネルのキューイングは非同期なので,キューイング直後にevent時間取得したい場合は, clWaitForEvents()`が必要だったよ,という余談でした.

0 件のコメント:

コメントを投稿