VulkanFence Class — pytorch Architecture
Architecture documentation for the VulkanFence class in Resource.h from the pytorch codebase.
Entity Profile
Source Code
aten/src/ATen/native/vulkan/api/Resource.h lines 500–545
class VulkanFence final {
public:
// TODO: This is required for the lazy allocation pattern in api/Tensor.
// It will be disabled pending future refactors.
explicit VulkanFence();
explicit VulkanFence(VkDevice);
VulkanFence(const VulkanFence&) = delete;
VulkanFence& operator=(const VulkanFence&) = delete;
VulkanFence(VulkanFence&&) noexcept;
VulkanFence& operator=(VulkanFence&&) noexcept;
~VulkanFence();
private:
VkDevice device_;
VkFence handle_;
bool waiting_;
public:
// Used to get the handle for a queue submission.
VkFence get_submit_handle() {
if (handle_ != VK_NULL_HANDLE) {
// Indicate we are now waiting for this fence to be signaled
waiting_ = true;
}
return handle_;
}
VkFence handle() {
return handle_;
}
// Trigger a synchronous wait for the fence to be signaled
void wait();
bool waiting() const {
return waiting_;
}
operator bool() const {
return (VK_NULL_HANDLE != handle_);
}
};
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free