Halide
DeviceAPI.h
Go to the documentation of this file.
1 #ifndef HALIDE_DEVICEAPI_H
2 #define HALIDE_DEVICEAPI_H
3 
4 /** \file
5  * Defines DeviceAPI.
6  */
7 
8 #include <string>
9 #include <vector>
10 
11 namespace Halide {
12 
13 /** An enum describing a type of device API. Used by schedules, and in
14  * the For loop IR node. */
15 enum class DeviceAPI {
16  None, /// Used to denote for loops that run on the same device as the containing code.
17  Host,
19  CUDA,
20  OpenCL,
22  Metal,
23  Hexagon,
24  HexagonDma,
26  Vulkan,
27  WebGPU,
28 };
29 
30 /** An array containing all the device apis. Useful for iterating
31  * through them. */
44 
45 } // namespace Halide
46 
47 #endif // HALIDE_DEVICEAPI_H
Halide::DeviceAPI::WebGPU
@ WebGPU
Halide::DeviceAPI::Default_GPU
@ Default_GPU
Halide::DeviceAPI::Host
@ Host
Used to denote for loops that run on the same device as the containing code.
Halide::DeviceAPI::CUDA
@ CUDA
Halide::DeviceAPI::HexagonDma
@ HexagonDma
Halide::DeviceAPI::D3D12Compute
@ D3D12Compute
Halide::DeviceAPI::OpenGLCompute
@ OpenGLCompute
Halide::all_device_apis
const DeviceAPI all_device_apis[]
An array containing all the device apis.
Definition: DeviceAPI.h:32
Halide
This file defines the class FunctionDAG, which is our representation of a Halide pipeline,...
Definition: AbstractGenerator.h:19
Halide::DeviceAPI::Metal
@ Metal
Halide::DeviceAPI::Hexagon
@ Hexagon
Halide::DeviceAPI::None
@ None
Halide::DeviceAPI::Vulkan
@ Vulkan
Halide::DeviceAPI::OpenCL
@ OpenCL
Halide::DeviceAPI
DeviceAPI
An enum describing a type of device API.
Definition: DeviceAPI.h:15