OpenGL

pycuda.gl.make_context(dev, flags=0)

创建并返回 pycuda.driver.Context 启用了gl互操作性。

警告

如果尚未创建并激活总账上下文,则此操作将失败,并显示一条不起作用的错误消息。

class pycuda.gl.graphics_map_flags

使用cuda中的opengl对象。

NONE

从CUDA代码对映射的OpenGL对象的读写访问。

READ_ONLY

从CUDA代码只读访问映射的OpenGL对象。

WRITE_DISCARD

从CUDA代码对映射的OpenGL对象只进行写访问。禁止阅读。

class pycuda.gl.RegisteredBuffer(bufobj, flags=CU_GRAPHICS_MAP_RESOURCE_FLAGS_NONE)

对象管理opengl缓冲区到cuda的映射。无法用于映射图像。

gl_handle()
unregister()
map(stream=None)

返回A RegisteredMapping .

class pycuda.gl.RegisteredImage(bufobj, target, flags=CU_GRAPHICS_MAP_RESOURCE_FLAGS_NONE)

对象管理OpenGL纹理和渲染缓冲区到CUDA的映射。

目标 必须是以下之一:

  • GL_TEXTURE_2D

  • GL_TEXTURE_RECTANGLE

  • GL_TEXTURE_CUBE_MAP

  • GL_TEXTURE_3D

  • GL_TEXTURE_2D_ARRAY

  • GL_RENDERBUFFER

(见pyopengl文档)

gl_handle()
unregister()
map(stream=None)

返回A RegisteredMapping .

class pycuda.gl.RegisteredMapping
unmap(stream=None)

如果未指定流,则取消映射将使用与原始映射相同的流。

device_ptr_and_size()

返回元组 (dev_pointer, size) .

array(index, level)

返回给定数组索引和mip级别的映射图像对象的数组。

自动初始化

警告

进口 pycuda.gl.autoinit 如果尚未创建并激活总帐上下文,则将失败,并显示一条毫无帮助的错误消息。

pycuda.gl.autoinit.device
pycuda.gl.autoinit.context

旧式(CUDA 3.0之前)API

pycuda.gl.autoinit.init()

为已创建(到目前为止为非GL)且当前处于活动状态的 pycuda.driver.Context .

根据下面注释中引用的论坛帖子,这将在windows xp和linux上成功,但在windows vista上不起作用。有你 have 使用 make_context() .

警告

自CUDA 3.0和PYCUDA 2011.1以来,此函数已被弃用。

警告

如果尚未创建并激活总账上下文,则此操作将失败,并显示一条不起作用的错误消息。

注解

看到这个 post 在nvidia论坛上讨论gl interop接口的问题和解决方案。

class pycuda.gl.autoinit.BufferObject(bufobj)

警告

自cuda 3.0和pycuda 2011.1以来,该类已被弃用。

unregister()
handle
map()
class pycuda.gl.autoinit.BufferObjectMapping

警告

自cuda 3.0和pycuda 2011.1以来,该类已被弃用。它将在Pycuda 0.96中被移除。

unmap()
device_ptr()
size()