Runtime Class — pytorch Architecture
Architecture documentation for the Runtime class in Runtime.h from the pytorch codebase.
Entity Profile
Source Code
aten/src/ATen/native/vulkan/api/Runtime.h lines 39–95
class Runtime final {
public:
explicit Runtime(const RuntimeConfiguration);
// Do not allow copying. There should be only one global instance of this
// class.
Runtime(const Runtime&) = delete;
Runtime& operator=(const Runtime&) = delete;
Runtime(Runtime&&) noexcept;
Runtime& operator=(Runtime&&) = delete;
~Runtime();
using DeviceMapping = std::pair<PhysicalDevice, int32_t>;
using AdapterPtr = std::unique_ptr<Adapter>;
private:
RuntimeConfiguration config_;
VkInstance instance_;
std::vector<DeviceMapping> device_mappings_;
std::vector<AdapterPtr> adapters_;
uint32_t default_adapter_i_;
VkDebugReportCallbackEXT debug_report_callback_;
public:
inline VkInstance instance() const {
return instance_;
}
inline Adapter* get_adapter_p() {
VK_CHECK_COND(
default_adapter_i_ >= 0 && default_adapter_i_ < adapters_.size(),
"Pytorch Vulkan Runtime: Default device adapter is not set correctly!");
return adapters_[default_adapter_i_].get();
}
inline Adapter* get_adapter_p(uint32_t i) {
VK_CHECK_COND(
i >= 0 && i < adapters_.size(),
"Pytorch Vulkan Runtime: Adapter at index ",
i,
" is not available!");
return adapters_[i].get();
}
inline uint32_t default_adapter_i() const {
return default_adapter_i_;
}
using Selector =
std::function<uint32_t(const std::vector<Runtime::DeviceMapping>&)>;
uint32_t create_adapter(const Selector&);
};
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free