#include <algorithm>#include <chrono>#include <cstdlib>#include <iostream>#include <map>#include <unordered_map>#include "common/Subscription.h"#include "gpgpu/ComputeShader.h"#include "gpgpu/Gpgpu.h"#include "gpgpu/GpuBuffer.h"#include "gpgpu/Sequence.h"#include "graphics/Graphics.h"#include "tensor/OnnxCompiler.h"#include "tensor/OnnxCompute.h"命名空间 | |
| namespace | eve |
| Build metadata (engine git commit, build time, third-party version). | |
| namespace | eve::tensor |
函数 | |
| EVENGINE_API_DOMAINS Result< std::unique_ptr< OnnxCompute > > | eve::tensor::createOnnxGpuCompute (uint32_t compilerWorkers=4) |
| Create a reusable GPU session for the active engine Gpgpu Vulkan device, or an error. | |
变量说明
◆ active
| bool active = true |
在文件 OnnxGpgpu.cpp 第 52 行定义.
◆ allocatedBytes
| size_t allocatedBytes = 0 |
在文件 OnnxGpgpu.cpp 第 60 行定义.
◆ allocationMs
| double allocationMs = 0 |
在文件 OnnxGpgpu.cpp 第 57 行定义.
◆ bindings
| std::vector<std::shared_ptr<DeviceBytes> > bindings |
在文件 OnnxGpgpu.cpp 第 38 行定义.
被这些函数引用 eve::rpg::StatusSystem::apply(), eve::particles::applyConfigDocument(), eve::graphics::vulkan::Graphics::filterHDRReflectionCubemap(), eve::asset_scene::EvpackSceneTemplateLoader::load(), eve::asset_import::prepareUnityCollection(), eve::dialogue::ConversationTextRenderer::render(), eve::graphics::vulkan::Graphics::replaceMeshShaderResources(), eve::dev::LanguageServer::semanticTokens(), eve::dialogue::DialogueFlow::startChecked(), eve::dialogue::DialogueFlow::startChecked() , 以及 eve::gpgpu::vulkanNewShaderFromSpirv().
◆ buffer
| std::unique_ptr<gpgpu::GpuBuffer> buffer |
在文件 OnnxGpgpu.cpp 第 26 行定义.
被这些函数引用 eve::particles::ParticleEmitterPool::acquire(), eve::tensor::GpuProgram::Impl::alloc(), eve::level_editing::EditorHistory::applyLastToBuffer(), eve::level_editing::EditorHistory::applyLastToBufferChecked(), eve::gpgpu::ShaderSystem::attachBuffer(), eve::gpgpu::VulkanComputeShader::bindBuffer(), eve::gpgpu::WebGpuComputeShader::bindBuffer(), eve::particles::ParticleEmitter::currentSimulationTick(), eve::particles_graphics_editing::ParticleEmitterOffscreenPresenter::draw(), eve::graphics::vulkan::Graphics::drawDeferredLighting(), eve::graphics::vulkan::Graphics::drawPrimitiveScene(), eve::level_editing::Brush::eraseAt(), eve::Exception::Exception(), eve::cmd::sdk::fileSha256(), eve::level_editing::Brush::floodFill(), eve::particles::ParticleEmitter::getConfigReloadObservation(), eve::filesystem::Filesystem::getExecutablePath(), eve::graphics::vulkan::Graphics::gpuDrivenCullBegin(), eve::dev::PlayTraceBuffer::instance(), eve::particles::Particles::newEmitterFromFile(), eve::level_editor::LevelEditorModule::newTarget(), eve::level_editing::Brush::paintAt(), eve::level_editing::Brush::paintLine(), eve::level_editing::Brush::paintRect(), eve::asset_import::prepareUnityNativeMesh(), eve::level_editing::Brush::previewAt(), eve::level_editing::Brush::previewLine(), eve::level_editing::Brush::previewRect(), eve::graphics::vulkan::Graphics::replaceMeshShaderResources(), eve::combat::CombatCancelResolver::setBuffer(), eve::dev::sqValueToJson(), eve::graphics::raytracing::DeviceAddressBuffer::steal(), eve::climbing::ClimbingProbeSystem::step(), eve::Value::toString(), eve::graphics::vulkan::Graphics::updateTextureFromResidentRgba8() , 以及 eve::gpgpu::webgpuSequenceRecordUpload().
◆ cachedBytes
| size_t cachedBytes = 0 |
在文件 OnnxGpgpu.cpp 第 60 行定义.
◆ capacity
| size_t capacity = 0 |
在文件 OnnxGpgpu.cpp 第 27 行定义.
◆ compilation
| std::future<onnx_detail::CompiledProgram> compilation |
在文件 OnnxGpgpu.cpp 第 33 行定义.
◆ compiledShaders
| size_t compiledShaders = 0 |
在文件 OnnxGpgpu.cpp 第 58 行定义.
◆ compiler
| onnx_detail::CompilerQueue compiler |
在文件 OnnxGpgpu.cpp 第 45 行定义.
◆ compilerWorkers
| uint32_t compilerWorkers = 4 |
在文件 OnnxGpgpu.cpp 第 253 行定义.
被这些函数引用 eve::tensor::createOnnxGpuCompute().
◆ compileTaskMs
| double compileTaskMs = 0 |
在文件 OnnxGpgpu.cpp 第 47 行定义.
◆ compileWaitMs
| double compileWaitMs = 0 |
在文件 OnnxGpgpu.cpp 第 47 行定义.
◆ dispatches
| std::vector<PendingDispatch> dispatches |
在文件 OnnxGpgpu.cpp 第 46 行定义.
◆ dispatchRecordMs
| double dispatchRecordMs = 0 |
在文件 OnnxGpgpu.cpp 第 57 行定义.
◆ epoch
| uint64_t epoch = 0 |
在文件 OnnxGpgpu.cpp 第 28 行定义.
被这些函数引用 eve::ResourceManager::request(), eve::agent::run() , 以及 eve::ResourceManager::runLoadJob().
◆ freeBuffers
| std::multimap<size_t, std::unique_ptr<gpgpu::GpuBuffer> > freeBuffers |
在文件 OnnxGpgpu.cpp 第 61 行定义.
◆ gp
| gpgpu::Gpgpu& gp |
在文件 OnnxGpgpu.cpp 第 42 行定义.
被这些函数引用 eve::tensor::createOnnxGpuCompute(), eve::cmd::Cmdline::Run() , 以及 eve::tensor::GpuProgram::tryBuild().
◆ groups
| uint32_t groups |
在文件 OnnxGpgpu.cpp 第 39 行定义.
被这些函数引用 eve::procgen::Procgen::completeCellCleanupAtomic(), eve::gpgpu::ShaderSystem::dispatch(), eve::graphics::vulkan::Graphics::drawPrimitiveScene(), eve::tensor::onnx_detail::executeNeural(), eve::asset_import::executeVegetationMeshRules(), eve::graphics::vulkan::Graphics::gpuDrivenCullEmit(), eve::tensor::gpuReduce(), eve::tensor::optimizeGraph(), eve::tensor::q::quantize(), eve::rts::RTS::restoreState(), eve::rts::RTS::snapshotState(), eve::rts::SupplyConvoySystem::step(), eve::rts::TacticsSystem::step(), eve::rts::InfrastructureSystem::step() , 以及 eve::rts::ReinforcementProductionPolicySystem::step().
◆ milliseconds
| double& milliseconds |
在文件 OnnxGpgpu.cpp 第 19 行定义.
被这些函数引用 eve::graphics::webgpu::Graphics::end3DFrameToCanvas(), eve::procgen::ProcgenContext::endTrace(), eve::generateUuidV7(), eve::os::OS::limitFrame(), eve::graphics::ReflectionProbeCapture::reportGpuDurationMs(), eve::procgen::RuntimeGeneration::setFrameTimeBudget(), eve::graphics::ReflectionProbeCapture::setGpuBudgetMs(), eve::combat::standardCombatAbilities() , 以及 eve::procgen::ProcgenContext::trace().
◆ pending
| std::vector<std::shared_ptr<DeviceBytes> > pending |
在文件 OnnxGpgpu.cpp 第 54 行定义.
◆ persistentUploads
| std::map<std::shared_ptr<const std::vector<uint8_t> >, std::shared_ptr<DeviceBytes>, std::owner_less<std::shared_ptr<const std::vector<uint8_t> > > > persistentUploads |
在文件 OnnxGpgpu.cpp 第 50 行定义.
◆ pipelineMs
| double pipelineMs = 0 |
在文件 OnnxGpgpu.cpp 第 47 行定义.
◆ program
| ShaderEntry* program |
在文件 OnnxGpgpu.cpp 第 37 行定义.
◆ queued
| size_t queued = 0 |
在文件 OnnxGpgpu.cpp 第 60 行定义.
被这些函数引用 eve::vehicle::Vehicle::attack(), eve::vehicle::Vehicle::attackMove(), eve::material_editing::MaterialEditorService::compileAsync(), eve::rts::RTS::configureScriptWorld(), eve::rts::OrderComponent::enqueue(), eve::vehicle::Vehicle::hold(), eve::vehicle::Vehicle::moveTo(), eve::audio::Source::pump(), eve::vehicle::VehicleSystem::pushOrder(), eve::rpg::BattleTacticsCatalogue::queueAction(), eve::graphics::ReflectionProbeRegistry::queueCapture(), eve::graphics::ReflectionProbeRegistry::queueCaptureAABB(), eve::rts::OrderComponent::replace(), eve::rts::ReinforcementProductionPolicySystem::request(), eve::graphics::Graphics::requestFileImageDecode(), eve::orders::CommandQueue::snapshot(), eve::rts::WorkerAssignmentSystem::step(), eve::rts::WorkforceAssignmentSystem::step(), eve::rts::SupplySystem::step(), eve::rts::BuildingProductionSystem::step(), eve::rts::MiningSystem::step(), eve::audio::Source::stop(), eve::vehicle::Vehicle::stop(), eve::rpg::BattleControl::submitGameplay() , 以及 eve::platform_event::sdl::Event::wait().
◆ readbackMs
| double readbackMs = 0 |
在文件 OnnxGpgpu.cpp 第 57 行定义.
◆ resources
| std::vector<std::weak_ptr<DeviceBytes> > resources |
在文件 OnnxGpgpu.cpp 第 55 行定义.
被这些函数引用 eve::graphics::Graphics::ensureFileTexturesReady(), eve::tactics::Tactics::newUnit(), eve::graphics::vulkan::MeshShaderResourcesDeleter::operator()(), eve::graphics::vulkan::Graphics::replaceMeshShaderResources(), eve::graphics::GraphicsArtifactProvider::restoreState(), eve::emergence::FactStore::snapshotJson(), eve::graphics::GraphicsArtifactProvider::snapshotState() , 以及 eve::rts::MatchSystem::step().
◆ retired
| bool retired = false |
在文件 OnnxGpgpu.cpp 第 252 行定义.
◆ run
| std::shared_ptr<Run> run |
◆ sequence
| std::unique_ptr<gpgpu::Sequence> sequence |
在文件 OnnxGpgpu.cpp 第 43 行定义.
被这些函数引用 eve::detail::EventLogValidator::accept(), eve::rpg::Battle::addActor(), eve::editor::EditorEventTimeline::append(), eve::pixelworld_streaming::decodeChunkBatchArchive(), eve::climbing::decodeClimbingPredictionDecision(), eve::climbing::decodeClimbingPredictionRequest(), eve::graphics::vulkan::Graphics::drawPrimitiveScene(), eve::game_event::GameEventLog::find(), eve::game_event::GameEventLog::find(), eve::rts::RTS::inspectFrameEvents(), eve::physics::detail::makePhysicsWorldPersistentId(), eve::scene_editing::makeSceneComponentSelection(), eve::gpgpu::ShaderSystem::recordDispatch(), eve::graphics::resolvePrimitiveStrokes3D(), eve::production::WorkQueue::restore(), eve::definitions::DefinitionRegistry::restoreJson(), eve::policyregistry::PolicyRegistry::restoreJson(), eve::level_editing::LevelFormatRegistry::save(), eve::game_event::EventConsumer::seek(), eve::game_event::EventConsumer::seek(), eve::settlement::SettlementPipeline::settle(), eve::settlement::SettlementPipeline::settleAtomic(), eve::VersionedRegistry< Key, Value, EventData, Compare >::State::swap(), eve::gpgpu::webgpuSequenceBegin(), eve::gpgpu::webgpuSequenceDestroy(), eve::gpgpu::webgpuSequencePoll(), eve::gpgpu::webgpuSequenceReady(), eve::gpgpu::webgpuSequenceRecordDispatch(), eve::gpgpu::webgpuSequenceRecordDownload(), eve::gpgpu::webgpuSequenceRecordUpload(), eve::gpgpu::webgpuSequenceStatus(), eve::gpgpu::webgpuSequenceSubmit(), eve::gpgpu::webgpuSequenceSubmitAsync(), eve::gpgpu::webgpuSequenceWait() , 以及 eve::filesystem::Filesystem::writeTextAtomic().
◆ shader
| std::unique_ptr<gpgpu::ComputeShader> shader |
在文件 OnnxGpgpu.cpp 第 34 行定义.
◆ shaderMs
| double shaderMs = 0 |
在文件 OnnxGpgpu.cpp 第 57 行定义.
◆ shaders
| std::unordered_map<std::string, ShaderEntry> shaders |
在文件 OnnxGpgpu.cpp 第 44 行定义.
◆ size
| size_t size = 0 |
在文件 OnnxGpgpu.cpp 第 27 行定义.
◆ start
| Clock::time_point start = Clock::now() |
在文件 OnnxGpgpu.cpp 第 20 行定义.
◆ started
| Clock::time_point started = Clock::now() |
在文件 OnnxGpgpu.cpp 第 59 行定义.
◆ stats
| OnnxTransferStats stats |
在文件 OnnxGpgpu.cpp 第 56 行定义.
被这些函数引用 eve::card::CardDefinitionRuntime::applyTo(), eve::card::CardData::describe(), eve::tensor::onnx_detail::executeQuant(), eve::particles::Particles::getLastBudgetSkippedEmitters(), eve::particles::ParticleRenderSystem::render(), eve::particles::runParticleSimulation(), eve::voxel::VoxelWorld::streamAround() , 以及 eve::procgen::TerrainStreamingCache::streamAround().
◆ uncommittedUploads
| std::vector<std::shared_ptr<const std::vector<uint8_t> > > uncommittedUploads |
在文件 OnnxGpgpu.cpp 第 51 行定义.
◆ uploadRecordMs
| double uploadRecordMs = 0 |
在文件 OnnxGpgpu.cpp 第 57 行定义.
◆ uploads
| std::map<std::shared_ptr<const std::vector<uint8_t> >, std::shared_ptr<DeviceBytes>, std::owner_less<std::shared_ptr<const std::vector<uint8_t> > > > uploads |
在文件 OnnxGpgpu.cpp 第 50 行定义.
被这些函数引用 eve::pixelworld_graphics::PixelWorldAtlasRenderer::sync().
◆ waitMs
| double waitMs = 0 |
在文件 OnnxGpgpu.cpp 第 57 行定义.