GPU execution of a compiled tensor Graph via generated compute shaders. 更多...
#include <GpuBackend.h>
类 | |
| struct | Impl |
Public 成员函数 | |
| ~GpuProgram () | |
| std::vector< float > | run (const std::vector< const float * > &feeds) const |
feeds[slot] must point to placeholderSize(slot) floats. Returns the output buffer. | |
静态 Public 成员函数 | |
| static GpuProgram * | tryBuild (const Graph &graph, const OptimizedGraph &opt, int outputNode) |
详细描述
GPU execution of a compiled tensor Graph via generated compute shaders.
Built once per CompiledFunction (shapes are static at compile time):
- every fused group is lowered by KernelGen into a fully specialized GLSL kernel (shapes baked as constants, no per-dispatch shape work);
- a static memory plan reuses arena buffers whenever node lifetimes don't overlap (AITemplate-style memory planning);
- rank-2 matmuls are autotuned between a naive thread-per-output kernel and a shared-memory 16x16 tiled kernel.
tryBuild() never throws: it returns nullptr when Vulkan/gpgpu isn't available or a group cannot be lowered, in which case the caller falls back to the CPU interpreter.
在文件 GpuBackend.h 第 26 行定义.
构造及析构函数说明
◆ ~GpuProgram()
| eve::tensor::GpuProgram::~GpuProgram | ( | ) |
在文件 GpuBackend.cpp 第 166 行定义.
成员函数说明
◆ run()
| std::vector< float > eve::tensor::GpuProgram::run | ( | const std::vector< const float * > & | feeds | ) | const |
feeds[slot] must point to placeholderSize(slot) floats. Returns the output buffer.
在文件 GpuBackend.cpp 第 310 行定义.
引用了 eve::gpgpu::Sequence::begin(), eve::tensor::GpuProgram::Impl::groups, eve::tensor::GpuProgram::Impl::outputBuffer, eve::tensor::GpuProgram::Impl::outputSize, eve::tensor::GpuProgram::Impl::outputStaging, eve::tensor::GpuProgram::Impl::placeholderBuffers, eve::tensor::GpuProgram::Impl::placeholderSizes, eve::gpgpu::Sequence::recordDownload(), eve::tensor::GpuProgram::Impl::recordGroup(), eve::gpgpu::Sequence::recordUpload(), eve::tensor::GpuProgram::Impl::sequence , 以及 eve::gpgpu::Sequence::submit().
◆ tryBuild()
|
static |
在文件 GpuBackend.cpp 第 168 行定义.
引用了 eve::tensor::Alias, eve::tensor::Const, eve::tensor::GraphNode::constBytes, eve::tensor::GraphNode::constScales, eve::tensor::generateKernel(), eve::tensor::generateMatMulVariant(), graph, eve::tensor::OptimizedGraph::groupOrder, eve::tensor::OptimizedGraph::groups, eve::tensor::KernelSpec::groupsX2, eve::tensor::KernelSpec::groupsY2, id, impl, eve::tensor::GpuProgram::Impl::GroupRuntime::inputs, eve::tensor::MatMul, eve::tensor::OptimizedGraph::nodeSlot, eve::tensor::GpuProgram::Impl::GroupRuntime::output, eve::tensor::GpuProgram::Impl::GroupRuntime::pass1, eve::tensor::KernelSpec::pass1, eve::tensor::GpuProgram::Impl::GroupRuntime::pass2, eve::tensor::KernelSpec::pass2, eve::tensor::Placeholder, eve::tensor::GpuProgram::Impl::GroupRuntime::qScales, eve::tensor::GraphNode::rank, s, eve::tensor::OptimizedGraph::slotSize, eve::tensor::GpuProgram::Impl::GroupRuntime::spec, eve::tensor::GpuProgram::Impl::GroupRuntime::stats, eve::tensor::KernelSpec::statsCount, eve::tensor::KernelSpec::statsSize , 以及 eve::tensor::KernelSpec::twoPass.
该类的文档由以下文件生成:
- src/modules/tensor/GpuBackend.h
- src/modules/tensor/GpuBackend.cpp