特定のカーネルについて、work_groupsが常に同じサイズであるのはなぜですか?私はどこかで(ローカル作業サイズを指定しない場合)、openCLが651個の作業項目(3で割り切れる)を持つカーネル用に3つの作業グループ(それぞれ217個の作業項目)を作成し、653個の作業を作成することを読みました-653は素数であるため、各1つの作業項目のグループ。
local_work_size(つまり、ワークグループ内のワークアイテムの数)を指定するとします。たとえば、5。そして、合計作業項目(global_work_size)を9としています。作業グループはどのように作成されますか?これが、global_work_sizeがlocal_work_sizeの倍数でなければならない理由ですか?データに必要な作業項目が9つだけの場合、データを10(local_work_size、5の倍数)に増やすにはどうすればよいですか?
カーネルを実行するワークグループの数がわからない場合、ホストが結果配列にメモリを割り当てることができないのはなぜですか?
助けてください。私はこれについてこれをすべて読んだ: http ://www.openclblog.com/2011/09/work-group-sizes.html