blob: cc0acbc88876f299b5e41097cd8cf8e1035f23bd [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
/*!
* \brief gotvm package source for TVMContext interface
* \file context.go
*/
package gotvm
//#include "gotvm.h"
import "C"
// KDLCPU is golang enum correspond to TVM device type kDLCPU.
var KDLCPU = int32(C.kDLCPU)
// KDLGPU is golang enum correspond to TVM device type kDLGPU.
var KDLGPU = int32(C.kDLGPU)
// KDLCPUPinned is golang enum correspond to TVM device type kDLCPUPinned.
var KDLCPUPinned = int32(C.kDLCPUPinned)
// KDLOpenCL is golang enum correspond to TVM device type kDLOpenCL.
var KDLOpenCL = int32(C.kDLOpenCL)
// KDLMetal is golang enum correspond to TVM device type kDLMetal.
var KDLMetal = int32(C.kDLMetal)
// KDLVPI is golang enum correspond to TVM device type kDLVPI.
var KDLVPI = int32(C.kDLVPI)
// KDLROCM is golang enum correspond to TVM device type kDLROCM.
var KDLROCM = int32(C.kDLROCM)
// KDLSDAccel is golang enum correspond to TVM device type kDLSDAccel.
var KDLSDAccel = int32(C.kDLSDAccel)
// KDLVulkan is golang enum correspond to TVM device type kDLVulkan.
var KDLVulkan = int32(C.kDLVulkan)
// KOpenGL is golang enum correspond to TVM device type kOpenGL.
var KOpenGL = int32(C.kOpenGL)
// KExtDev is golang enum correspond to TVM device type kDLExtDev.
var KExtDev = int32(C.kDLExtDev)
// Context dtype corresponding to TVMContext aka DLContext
type Context struct {
DeviceType int32
DeviceID int32
}
// CPU returns the Context object for CPU target on given index
func CPU(index int32) Context {
return Context{KDLCPU, index}
}
// GPU returns the Context object for GPU target on given index
func GPU(index int32) Context {
return Context{KDLGPU, index}
}
// CPUPinned returns the Context object for CPUPinned target on given index
func CPUPinned(index int32) Context {
return Context{KDLCPUPinned, index}
}
// OpenCL returns the Context object for OpenCL target on given index
func OpenCL(index int32) Context {
return Context{KDLOpenCL, index}
}
// Metal returns the Context object for Metal target on given index
func Metal(index int32) Context {
return Context{KDLMetal, index}
}
// VPI returns the Context object for VPI target on given index
func VPI(index int32) Context {
return Context{KDLVPI, index}
}
// ROCM returns the Context object for ROCM target on given index
func ROCM(index int32) Context {
return Context{KDLROCM, index}
}
// SDAccel returns the Context object for SDAccel target on given index
func SDAccel(index int32) Context {
return Context{KDLSDAccel, index}
}
// Vulkan returns the Context object for Vulkan target on given index
func Vulkan(index int32) Context {
return Context{KDLVulkan, index}
}
// OpenGL returns the Context object for OpenGL target on given index
func OpenGL(index int32) Context {
return Context{KOpenGL, index}
}