载入中...
搜索中...
未找到
eve::gpgpu::Gpgpu类 参考

GPGPU module — compute shaders + storage buffers via the active Graphics backend. Uses the graphics queue when no dedicated compute family exists (Apple/MoltenVK). 更多...

#include <Gpgpu.h>

类 eve::gpgpu::Gpgpu 继承关系图:
eve::Module

Public 成员函数

 Module_REG (Gpgpu)
 
 Gpgpu ()=default
 
 ~Gpgpu () override=default
 
bool isAvailable () const
 True when the active Graphics backend can run compute (device initialized).
 
ComputeShadernewShader (const std::string &source)
 Compile compute source for the active backend (Vulkan: GLSL via glslc).
 
ComputeShadernewShaderFromBytecode (const std::string &path)
 Load precompiled compute bytecode from Filesystem path (Vulkan: SPIR-V).
 
ComputeShadernewShaderFromSpvFile (const std::string &path)
 Vulkan SPIR-V compatibility wrapper → newShaderFromBytecode.
 
GpuBuffernewBuffer (int byteSize, const std::string &usage="storage")
 Allocate a GPU buffer. usage: "storage" (SSBO, device-local) | "staging" (host-visible transfer).
 
SequencenewSequence ()
 Create a Kompute-style command Sequence: record buffer transfers and compute dispatches into one command buffer, then submit() once.
 
void dispatch (ComputeShader *shader, int groupsX, int groupsY=1, int groupsZ=1)
 Record + submit a compute dispatch and wait for completion (sync). groups*: workgroup counts (not thread counts).
 
- Public 成员函数 继承自 eve::Module
virtual ~Module ()
 
virtual std::string getName () const =0
 

详细描述

GPGPU module — compute shaders + storage buffers via the active Graphics backend. Uses the graphics queue when no dedicated compute family exists (Apple/MoltenVK).

Script: gpgpu <- eve.Gpgpu(); shader <- gpgpu.newShader(glsl); ECS: eve.ShaderSystem / eve.EcsShaderSystem bridge entity float fields to SSBOs.

在文件 Gpgpu.h20 行定义.

构造及析构函数说明

◆ Gpgpu()

eve::gpgpu::Gpgpu::Gpgpu ( )
default

◆ ~Gpgpu()

eve::gpgpu::Gpgpu::~Gpgpu ( )
overridedefault

成员函数说明

◆ dispatch()

void eve::gpgpu::Gpgpu::dispatch ( ComputeShader shader,
int  groupsX,
int  groupsY = 1,
int  groupsZ = 1 
)

Record + submit a compute dispatch and wait for completion (sync). groups*: workgroup counts (not thread counts).

在文件 Gpgpu.cpp116 行定义.

引用了 shader, eve::gpgpu::vulkanDispatch() , 以及 eve::gpgpu::webgpuDispatch().

被这些函数引用 eve::gpgpu::ShaderSystem::dispatch().

◆ isAvailable()

bool eve::gpgpu::Gpgpu::isAvailable ( ) const

True when the active Graphics backend can run compute (device initialized).

在文件 Gpgpu.cpp38 行定义.

引用了 eve::gpgpu::vulkanGpgpuReady() , 以及 eve::gpgpu::webgpuGpgpuReady().

◆ Module_REG()

eve::gpgpu::Gpgpu::Module_REG ( Gpgpu  )

◆ newBuffer()

GpuBuffer * eve::gpgpu::Gpgpu::newBuffer ( int  byteSize,
const std::string &  usage = "storage" 
)

Allocate a GPU buffer. usage: "storage" (SSBO, device-local) | "staging" (host-visible transfer).

在文件 Gpgpu.cpp92 行定义.

引用了 eve::gpgpu::vulkanNewBuffer() , 以及 eve::gpgpu::webgpuNewBuffer().

被这些函数引用 eve::tensor::GpuProgram::Impl::alloc() , 以及 eve::gpgpu::ShaderSystem::ensureBuffer().

◆ newSequence()

Sequence * eve::gpgpu::Gpgpu::newSequence ( )

Create a Kompute-style command Sequence: record buffer transfers and compute dispatches into one command buffer, then submit() once.

在文件 Gpgpu.cpp104 行定义.

◆ newShader()

ComputeShader * eve::gpgpu::Gpgpu::newShader ( const std::string &  source)

Compile compute source for the active backend (Vulkan: GLSL via glslc).

在文件 Gpgpu.cpp48 行定义.

引用了 eve::gpgpu::compileComputeGlsl(), eve::gpgpu::vulkanNewShaderFromSpirv() , 以及 eve::gpgpu::webgpuNewShaderFromWgsl().

被这些函数引用 eve::gpgpu::ShaderSystem::setShaderSource().

◆ newShaderFromBytecode()

ComputeShader * eve::gpgpu::Gpgpu::newShaderFromBytecode ( const std::string &  path)

Load precompiled compute bytecode from Filesystem path (Vulkan: SPIR-V).

在文件 Gpgpu.cpp61 行定义.

引用了 file, eve::gpgpu::loadSpirvFile(), eve::gpgpu::vulkanNewShaderFromSpirv() , 以及 eve::gpgpu::webgpuNewShaderFromWgsl().

被这些函数引用 newShaderFromSpvFile().

◆ newShaderFromSpvFile()

ComputeShader * eve::gpgpu::Gpgpu::newShaderFromSpvFile ( const std::string &  path)

Vulkan SPIR-V compatibility wrapper → newShaderFromBytecode.

在文件 Gpgpu.cpp79 行定义.

引用了 newShaderFromBytecode().


该类的文档由以下文件生成: