getGlobalId与getGlobalSize等参数释义

最近在《OpenCL异构计算》这本书(《Heterogeneous computing with OpenCL》翻译而来)上看到有一部分解释这些异构常用字段方法的含义,加上个人理解,希望可以帮助“码友”快速理解。

get_work_dim

    返回线程调度的维度数;(个人理解)表示NDRange的维度数。

get_global_size

    返回所请求维度上work-item的总数;(个人理解)在不考虑多维度的情况下,返回全局计算任务数,即work-item总数。

get_global_id

    返回在所请求的维度上当前work-item在全局空间中的索引;(个人理解)在不考虑多维度的情况下,返回全局中当前索引位置。

get_local_size

    返回在所请求维度上work-group的大小;(个人理解)在不考虑多维度的情况下,返回当前work-group内所含work-item的数量。

get_local-id

    返回在所请求的维度上,当前work-item在work-group中的索引;(个人理解)在不考虑多维度的情况下,返回当前位置在当前work-group内索引。

get_number_groups

    返回在所请求维度上work-group的数目,这个值等于get_global_size除以get_local_size;(个人理解)返回组数嘛,这个官方已经解释的很详细了^_^

get_group_id

    返回在所请求的维度上当前work-group在全局空间中的索引。(个人理解)在不考虑多维度的情况下,返回当前组在所有组中的索引。

注:

    而理清上面方法字段含义的前提是,一个任务是由多个work-group组成的,work-group又是由多个work-item组成的。各个work-group之间不相互通信,也不能保证同时运行,而同一个work-group内的work-item之间可以相互通信,并且可认为是同时进行的。

猜你喜欢

转载自blog.csdn.net/fortuna_i/article/details/80913341
今日推荐