sgns::sgprocessing::CapabilityValidator¶
#include <capability_validator.hpp>
Public Classes¶
| Name | |
|---|---|
| struct | Impl |
Public Functions¶
| Name | |
|---|---|
| CapabilityValidator() | |
| ~CapabilityValidator() | |
| CapabilityValidator(const CapabilityValidator & ) =delete | |
| CapabilityValidator & | operator=(const CapabilityValidator & ) =delete |
| CapabilityValidator(CapabilityValidator && ) =delete | |
| CapabilityValidator & | operator=(CapabilityValidator && ) =delete |
| void | BuildSnapshot(const std::unordered_map< PassType, std::function< std::unique_ptr< ProcessingProcessor >()>, PassTypeHash > & passFactories, size_t mnnProcessorCount, std::function< VkPhysicalDevice()> ensureVulkanDevice) |
| const CapabilitySnapshot * | GetSnapshot() const Access the cached snapshot. Returns nullptr before BuildSnapshot(). |
| void | CanExecute(const sgns::Pass & pass, CanExecuteCallback callback) |
Detailed Description¶
Pre-execution capability validation gate.
Built once at startup by ProcessingManager::Init(), then used by the scheduler to validate jobs before claiming them from the network. All checks run against the cached CapabilitySnapshot — no I/O needed at check time.
Public Functions Documentation¶
function CapabilityValidator¶
function ~CapabilityValidator¶
function CapabilityValidator¶
function operator=¶
function CapabilityValidator¶
function operator=¶
function BuildSnapshot¶
void BuildSnapshot(
const std::unordered_map< PassType, std::function< std::unique_ptr< ProcessingProcessor >()>, PassTypeHash > & passFactories,
size_t mnnProcessorCount,
std::function< VkPhysicalDevice()> ensureVulkanDevice
)
Parameters:
- passFactories — reference to ProcessingManager's m_passFactories, used to enumerate registered PassType→executor mappings (D-11)
- mnnProcessorCount — number of registered MNN processors (DataType-keyed)
- ensureVulkanDevice — callable that ensures Vulkan device exists and returns the VkPhysicalDevice handle
Build the capability snapshot once at startup (D-09, D-12). Called by ProcessingManager::Init() after all Register* calls. Acquires VulkanInitMutex internally (D-10).
function GetSnapshot¶
Access the cached snapshot. Returns nullptr before BuildSnapshot().
function CanExecute¶
Parameters:
- pass — the job definition to validate
- callback — invoked with CanExecuteResult (D-03 async pattern)
Validate whether a job can be executed on this node (CAP-02..05). Checks PassType registration, Vulkan limits, MNN model compatibility, GPU memory, and disk space against the cached snapshot.
Updated on 2026-09-17 at 06:29:14 +0000