|
| | Tensor (std::shared_ptr< vk::PhysicalDevice > physicalDevice, std::shared_ptr< vk::Device > device, void *data, uint32_t elementTotalCount, uint32_t elementMemorySize, const DataTypes &dataType, const MemoryTypes &tensorType=MemoryTypes::eDevice) |
| |
| | Tensor (std::shared_ptr< vk::PhysicalDevice > physicalDevice, std::shared_ptr< vk::Device > device, uint32_t elementTotalCount, uint32_t elementMemorySize, const DataTypes &dataType, const MemoryTypes &memoryType=MemoryTypes::eDevice) |
| |
|
| Tensor (const Tensor &)=delete |
| | Make Tensor uncopyable.
|
| |
|
| Tensor (const Tensor &&)=delete |
| |
|
Tensor & | operator= (const Tensor &)=delete |
| |
|
Tensor & | operator= (const Tensor &&)=delete |
| |
| virtual | ~Tensor () |
| |
| void | destroy () override |
| |
| bool | isInit () override |
| |
| void | recordCopyFrom (const vk::CommandBuffer &commandBuffer, std::shared_ptr< Tensor > copyFromTensor) override |
| |
| void | recordCopyFrom (const vk::CommandBuffer &commandBuffer, std::shared_ptr< Image > copyFromImage) override |
| |
| void | recordCopyFromStagingToDevice (const vk::CommandBuffer &commandBuffer) override |
| |
| void | recordCopyFromDeviceToStaging (const vk::CommandBuffer &commandBuffer) override |
| |
| void | recordPrimaryMemoryBarrier (const vk::CommandBuffer &commandBuffer, vk::AccessFlagBits srcAccessMask, vk::AccessFlagBits dstAccessMask, vk::PipelineStageFlagBits srcStageMask, vk::PipelineStageFlagBits dstStageMask) override |
| |
| void | recordStagingMemoryBarrier (const vk::CommandBuffer &commandBuffer, vk::AccessFlagBits srcAccessMask, vk::AccessFlagBits dstAccessMask, vk::PipelineStageFlagBits srcStageMask, vk::PipelineStageFlagBits dstStageMask) override |
| |
| vk::WriteDescriptorSet | constructDescriptorSet (vk::DescriptorSet descriptorSet, uint32_t binding) override |
| |
|
std::shared_ptr< vk::Buffer > | getPrimaryBuffer () |
| |
| Type | type () override |
| |
|
| Memory (std::shared_ptr< vk::PhysicalDevice > physicalDevice, std::shared_ptr< vk::Device > device, const DataTypes &dataType, const MemoryTypes &memoryType, uint32_t x, uint32_t y) |
| |
|
| Memory (const Memory &)=delete |
| | Make Memory uncopyable.
|
| |
|
| Memory (const Memory &&)=delete |
| |
|
Memory & | operator= (const Memory &)=delete |
| |
|
Memory & | operator= (const Memory &&)=delete |
| |
| virtual | ~Memory () |
| |
| MemoryTypes | memoryType () |
| |
| DataTypes | dataType () |
| |
| void | recordCopyFrom (const vk::CommandBuffer &commandBuffer, std::shared_ptr< Memory > copyFromMemory) |
| |
| uint32_t | size () |
| |
| uint32_t | dataTypeMemorySize () |
| |
| uint32_t | memorySize () |
| |
|
vk::DescriptorType | getDescriptorType () |
| |
| void * | rawData () |
| |
| void | setData (const void *data, size_t size) |
| |
| template<typename T > |
| void | setData (const std::vector< T > &data) |
| |
| template<typename T > |
| T * | data () |
| |
| template<typename T > |
| std::vector< T > | vector () |
| |
|
uint32_t | getX () |
| |
|
uint32_t | getY () |
| |
|
| enum class | MemoryTypes { eDevice = 0
, eHost = 1
, eStorage = 2
, eDeviceAndHost
} |
| |
| enum class | DataTypes {
eBool = 0
, eInt = 1
, eUnsignedInt = 2
, eFloat = 3
,
eDouble = 4
, eCustom = 5
, eShort = 6
, eUnsignedShort = 7
,
eChar = 8
, eUnsignedChar = 9
} |
| |
| enum class | Type { eTensor = 0
, eImage = 1
} |
| |
|
static std::string | toString (MemoryTypes dt) |
| |
|
static std::string | toString (DataTypes dt) |
| |
| template<typename T > |
| static constexpr DataTypes | dataType () |
| |
| static uint32_t | dataTypeMemorySize (DataTypes dataType) |
| |
|
template<> |
| constexpr Memory::DataTypes | dataType () |
| |
|
template<> |
| constexpr Memory::DataTypes | dataType () |
| |
|
template<> |
| constexpr Memory::DataTypes | dataType () |
| |
|
template<> |
| constexpr Memory::DataTypes | dataType () |
| |
|
template<> |
| constexpr Memory::DataTypes | dataType () |
| |
|
template<> |
| constexpr Memory::DataTypes | dataType () |
| |
|
template<> |
| constexpr Memory::DataTypes | dataType () |
| |
|
template<> |
| constexpr Memory::DataTypes | dataType () |
| |
|
template<> |
| constexpr Memory::DataTypes | dataType () |
| |
|
void | mapRawData () |
| |
|
void | unmapRawData () |
| |
|
void | updateRawData (void *data) |
| |
|
vk::MemoryPropertyFlags | getPrimaryMemoryPropertyFlags () |
| |
|
vk::MemoryPropertyFlags | getStagingMemoryPropertyFlags () |
| |
Structured data used in GPU operations.
Tensors are the base building block in Kompute to perform operations across GPUs. Each tensor would have a respective Vulkan memory and buffer, which would be used to store their respective data. The tensors can be used for GPU data storage or transfer.