1 #pragma once 2 3 #include <ATen/detail/XPUHooksInterface.h> 4 5 namespace at::xpu::detail { 6 7 // The real implementation of XPUHooksInterface 8 struct XPUHooks : public at::XPUHooksInterface { XPUHooksXPUHooks9 XPUHooks(at::XPUHooksArgs) {} 10 void initXPU() const override; 11 bool hasXPU() const override; 12 std::string showConfig() const override; 13 int32_t getGlobalIdxFromDevice(const at::Device& device) const override; 14 Generator getXPUGenerator(DeviceIndex device_index = -1) const override; 15 const Generator& getDefaultXPUGenerator( 16 DeviceIndex device_index = -1) const override; 17 Device getDeviceFromPtr(void* data) const override; 18 c10::DeviceIndex getNumGPUs() const override; 19 DeviceIndex current_device() const override; 20 void deviceSynchronize(DeviceIndex device_index) const override; 21 Allocator* getPinnedMemoryAllocator() const override; 22 bool isPinnedPtr(const void* data) const override; 23 bool hasPrimaryContext(DeviceIndex device_index) const override; 24 }; 25 26 } // namespace at::xpu::detail 27