OpenCL運行時:命令隊列和事件?

命令隊列?

class pyopencl.CommandQueue(context, device=None, properties=None)?

創建新的命令隊列。 性質 位字段由 command_queue_properties 價值觀。

如果 裝置 是無,是中的一個設備 語境 以實現定義的方式選擇。

性質 可以是來自 queue_properties (或) None 相當于通過 0 ). 這與opencl1.x和2.x都兼容。

對于OpenCL 2.0及更高版本, 性質 也可以是來自 queue_properties 已被接受 clCreateCommandQueueWithProperties() (有關詳細信息,請參見OpenCL規范)。尾隨 0 是自動添加的,不需要包括在內。

A CommandQueue 可以用作上下文管理器,如下所示:

with cl.CommandQueue(self.cl_context) as queue:
    enqueue_stuff(queue, ...)

finish()with -分隔的上下文。

2013.1 新版功能: 上下文管理器功能。

在 2018.2 版更改: 為opencl2添加了屬性序列接口。

info?

的小寫版本 command_queue_info 常量可以用作此類實例上的屬性,以直接查詢信息屬性。

get_info(param)?

command_queue_info 對于價值 param .

set_property(prop, enable)?

command_queue_properties 對于可能的值 prop . 使可能 是一個 bool .

在opencl1.1及更新版本中不可用。

flush()?
finish()?
static from_int_ptr(int_ptr_value: int, retain: bool = True)pyopencl._cl.CommandQueue?

(靜態方法)返回一個引用C級的新Python對象 cl_command_queue 對象指向的位置 int_ptr_value . 相關的 clRetain* 函數將被調用,如果 保持 是是的,如果對象的前所有者將 not 釋放引用, 保持 應設置為 ,有效地將所有權轉移給 pyopencl .

2013.2 新版功能.

在 2016.1 版更改: 保持 補充。

int_ptr?

返回與基礎 cl_command_queue . 使用 from_int_ptr() 返回到Python對象。

2013.2 新版功能.

Instances of this class are hashable, and two instances of this class may be compared using "==" and "!=". (Hashability was added in version 2011.2.) Two objects are considered the same if the underlying OpenCL object is the same, as established by C pointer equality.

事件?

class pyopencl.Event?
info?

的小寫版本 event_info 常量可以用作此類實例上的屬性,以直接查詢信息屬性。

profile?

的實例 ProfilingInfoGetter .

get_info(param)?

event_info 對于價值 param .

get_profiling_info(param)?

profiling_info 對于價值 param . 見 profile 為了更容易獲得相同的信息。

wait()?
static from_int_ptr(int_ptr_value: int, retain: bool = True)pyopencl._cl.Event?

(靜態方法)返回一個引用C級的新Python對象 cl_event 對象指向的位置 int_ptr_value . 相關的 clRetain* 函數將被調用,如果 保持 是是的,如果對象的前所有者將 not 釋放引用, 保持 應設置為 ,有效地將所有權轉移給 pyopencl .

2013.2 新版功能.

在 2016.1 版更改: 保持 補充。

int_ptr?

返回與基礎 cl_event . 使用 from_int_ptr() 返回到Python對象。

2013.2 新版功能.

set_callback(type, cb)?

添加回調 cb 有簽名 cb(status) 事件狀態的回調隊列 type (價值之一) command_execution_status 除外 command_execution_status.QUEUED

請參閱OpenCL規范以了解對什么的限制 cb 可能做也可能不做。

2015.2 新版功能.

Instances of this class are hashable, and two instances of this class may be compared using "==" and "!=". (Hashability was added in version 2011.2.) Two objects are considered the same if the underlying OpenCL object is the same, as established by C pointer equality.

class pyopencl.ProfilingInfoGetter?
info?

的小寫版本 profiling_info 常量可以用作屬性上的屬性 profile 直接查詢分析信息。

例如,您可以使用 evt.profile.end 而不是 evt.get_profiling_info(pyopencl.profiling_info.END) .

事件子類?

class pyopencl.UserEvent(context)?

一個子類 Event . 僅適用于OpenCL 1.1及更新版本。

0.92 新版功能.

set_status(status)?

command_execution_status 對于可能的值 地位 .

class pyopencl.NannyEvent?

主機和設備之間的傳輸返回此類型的事件。它們持有對主機端緩沖區的引用,并在釋放時等待傳輸完成。因此,他們可以在破壞時安全地釋放對所保護對象的引用。

一個子類 Event .

2011.2 新版功能.

get_ward()?
wait()?

除了執行與 Event.wait() ,此方法還釋放對受保護對象的引用。

同步功能?

pyopencl.wait_for_events(events)?
pyopencl.enqueue_barrier(queue, wait_for=None)?

在障礙物操作中排隊。它確保命令隊列中所有排隊的命令都已完成執行。此命令是一個同步點。

0.91.5 新版功能.

在 2011.2 版更改: wait_for 并返回 Event

pyopencl.enqueue_marker(queue, wait_for=None)?

返回一個 Event .

在 2011.2 版更改: wait_for .