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
,
18
Default_GPU
,
19
CUDA
,
20
OpenCL
,
21
OpenGLCompute
,
22
Metal
,
23
Hexagon
,
24
HexagonDma
,
25
D3D12Compute
,
26
Vulkan
,
27
WebGPU
,
28
};
29
30
/** An array containing all the device apis. Useful for iterating
31
* through them. */
32
const
DeviceAPI
all_device_apis
[] = {
DeviceAPI::None
,
33
DeviceAPI::Host
,
34
DeviceAPI::Default_GPU
,
35
DeviceAPI::CUDA
,
36
DeviceAPI::OpenCL
,
37
DeviceAPI::OpenGLCompute
,
38
DeviceAPI::Metal
,
39
DeviceAPI::Hexagon
,
40
DeviceAPI::HexagonDma
,
41
DeviceAPI::D3D12Compute
,
42
DeviceAPI::Vulkan
,
43
DeviceAPI::WebGPU
};
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
src
DeviceAPI.h
Generated by
1.8.17