Halide 22.0.0 Halide compiler and libraries

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,
18 Default_GPU,
19 CUDA,
20 OpenCL,
21 Metal,
22 Hexagon,
23 HexagonDma,
24 D3D12Compute,
25 Vulkan,
26 WebGPU,
27};
28
29/** An array containing all the device apis. Useful for iterating
30 * through them. */
31 const DeviceAPI all_device_apis[] = {DeviceAPI::None,
32 DeviceAPI::Host,
33 DeviceAPI::Default_GPU,
34 DeviceAPI::CUDA,
35 DeviceAPI::OpenCL,
36 DeviceAPI::Metal,
37 DeviceAPI::Hexagon,
38 DeviceAPI::HexagonDma,
39 DeviceAPI::D3D12Compute,
40 DeviceAPI::Vulkan,
41 DeviceAPI::WebGPU};
42
43} // namespace Halide
44
45#endif // HALIDE_DEVICEAPI_H
Halide
This file defines the class FunctionDAG, which is our representation of a Halide pipeline,...
Definition: AbstractGenerator.h:19
Halide::DeviceAPI
DeviceAPI
An enum describing a type of device API.
Definition: DeviceAPI.h:15
Halide::DeviceAPI::Hexagon
@ Hexagon
Halide::DeviceAPI::Vulkan
@ Vulkan
Halide::DeviceAPI::HexagonDma
@ HexagonDma
Halide::DeviceAPI::None
@ None
Halide::DeviceAPI::OpenCL
@ OpenCL
Halide::DeviceAPI::CUDA
@ CUDA
Halide::DeviceAPI::D3D12Compute
@ D3D12Compute
Halide::DeviceAPI::Host
@ Host
Used to denote for loops that run on the same device as the containing code.
Halide::DeviceAPI::WebGPU
@ WebGPU
Halide::DeviceAPI::Metal
@ Metal
Halide::DeviceAPI::Default_GPU
@ Default_GPU
Halide::all_device_apis
const DeviceAPI all_device_apis[]
An array containing all the device apis.
Definition: DeviceAPI.h:31