SWDEV-489106 - Hip changes for Linker APIs
1) Map RTC linker API enums to Runtime Linker API enums
2) Add API declarations for Runtime linker APIs
Change-Id: Id5da355a77365f97868e462847f3906e87fd2af7
[ROCm/hip commit: b6c63068a2]
Αυτή η υποβολή περιλαμβάνεται σε:
υποβλήθηκε από
Rahul Manocha
γονέας
b1ba15a75e
υποβολή
c6d7a82620
@@ -33,6 +33,7 @@ THE SOFTWARE.
|
||||
#include <string.h> // for getDeviceProp
|
||||
#include <hip/hip_version.h>
|
||||
#include <hip/hip_common.h>
|
||||
#include <hip/linker_types.h>
|
||||
|
||||
enum {
|
||||
HIP_SUCCESS = 0,
|
||||
@@ -625,6 +626,7 @@ typedef struct hipIpcEventHandle_st {
|
||||
} hipIpcEventHandle_t;
|
||||
typedef struct ihipModule_t* hipModule_t;
|
||||
typedef struct ihipModuleSymbol_t* hipFunction_t;
|
||||
typedef struct ihipLinkState_t* hipLinkState_t;
|
||||
/**
|
||||
* HIP memory pool
|
||||
*/
|
||||
@@ -1137,29 +1139,6 @@ typedef struct hipMemPoolPtrExportData {
|
||||
unsigned char reserved[64];
|
||||
} hipMemPoolPtrExportData;
|
||||
|
||||
/**
|
||||
* hipJitOption
|
||||
*/
|
||||
typedef enum hipJitOption {
|
||||
hipJitOptionMaxRegisters = 0,
|
||||
hipJitOptionThreadsPerBlock,
|
||||
hipJitOptionWallTime,
|
||||
hipJitOptionInfoLogBuffer,
|
||||
hipJitOptionInfoLogBufferSizeBytes,
|
||||
hipJitOptionErrorLogBuffer,
|
||||
hipJitOptionErrorLogBufferSizeBytes,
|
||||
hipJitOptionOptimizationLevel,
|
||||
hipJitOptionTargetFromContext,
|
||||
hipJitOptionTarget,
|
||||
hipJitOptionFallbackStrategy,
|
||||
hipJitOptionGenerateDebugInfo,
|
||||
hipJitOptionLogVerbose,
|
||||
hipJitOptionGenerateLineInfo,
|
||||
hipJitOptionCacheMode,
|
||||
hipJitOptionSm3xOpt,
|
||||
hipJitOptionFastCompile,
|
||||
hipJitOptionNumOptions
|
||||
} hipJitOption;
|
||||
/**
|
||||
* @warning On AMD devices and some Nvidia devices, these hints and controls are ignored.
|
||||
*/
|
||||
@@ -5906,6 +5885,86 @@ hipError_t hipModuleLoadData(hipModule_t* module, const void* image);
|
||||
*/
|
||||
hipError_t hipModuleLoadDataEx(hipModule_t* module, const void* image, unsigned int numOptions,
|
||||
hipJitOption* options, void** optionValues);
|
||||
/**
|
||||
* @brief Completes the linking of the given program.
|
||||
* @param [in] state hip link state
|
||||
* @param [in] type Type of the input data or bitcode
|
||||
* @param [in] data Input data which is null terminated
|
||||
* @param [in] size Size of the input data
|
||||
* @param [in] name Optional name for this input
|
||||
* @param [in] numOptions Size of the options
|
||||
* @param [in] options Array of options applied to this input
|
||||
* @param [in] optionValues Array of option values cast to void*
|
||||
*
|
||||
* @returns #hipSuccess, #hipErrorInvalidValue, #hipErrorInvalidHandle
|
||||
*
|
||||
* If adding the file fails, it will
|
||||
* @return #hipErrorInvalidConfiguration
|
||||
*
|
||||
* @see hipError_t
|
||||
*/
|
||||
hipError_t hipLinkAddData(hipLinkState_t state, hipJitInputType type, void* data, size_t size,
|
||||
const char* name, unsigned int numOptions, hipJitOption* options,
|
||||
void** optionValues);
|
||||
|
||||
/**
|
||||
* @brief Adds a file with bit code to be linked with options
|
||||
* @param [in] state hip link state
|
||||
* @param [in] type Type of the input data or bitcode
|
||||
* @param [in] path Path to the input file where bitcode is present
|
||||
* @param [in] numOptions Size of the options
|
||||
* @param [in] options Array of options applied to this input
|
||||
* @param [in] optionValues Array of option values cast to void*
|
||||
*
|
||||
* @returns #hipSuccess, #hipErrorInvalidValue
|
||||
*
|
||||
* If adding the file fails, it will
|
||||
* @return #hipErrorInvalidConfiguration
|
||||
*
|
||||
* @see hipError_t
|
||||
*/
|
||||
hipError_t hipLinkAddFile(hipLinkState_t state, hipJitInputType type, const char* path, unsigned int numOptions,
|
||||
hipJitOption* options, void** optionValues);
|
||||
|
||||
/**
|
||||
* @brief Completes the linking of the given program.
|
||||
* @param [in] state hip link state
|
||||
* @param [out] hipBinOut Upon success, points to the output binary
|
||||
* @param [out] sizeOut Size of the binary is stored (optional)
|
||||
*
|
||||
* @returns #hipSuccess #hipErrorInvalidValue
|
||||
*
|
||||
* If adding the data fails, it will
|
||||
* @return #hipErrorInvalidConfiguration
|
||||
*
|
||||
* @see hipError_t
|
||||
*/
|
||||
|
||||
hipError_t hipLinkComplete(hipLinkState_t state, void** hipBinOut, size_t* sizeOut);
|
||||
|
||||
/**
|
||||
* @brief Creates the link instance via hip APIs.
|
||||
* @param [in] numOptions Number of options
|
||||
* @param [in] option Array of options
|
||||
* @param [in] optionValues Array of option values cast to void*
|
||||
* @param [out] stateOut hip link state created upon success
|
||||
*
|
||||
* @returns #hipSuccess #hipErrorInvalidValue #hipErrorInvalidConfiguration
|
||||
*
|
||||
* @see hipSuccess
|
||||
*/
|
||||
hipError_t hipLinkCreate(unsigned int numOptions, hipJitOption* options,
|
||||
void** optionValues, hipLinkState_t* stateOut);
|
||||
/**
|
||||
* @brief Deletes the link instance via hip APIs.
|
||||
* @param [in] state link state instance
|
||||
*
|
||||
* @returns #hipSuccess #hipErrorInvalidValue
|
||||
*
|
||||
* @see hipSuccess
|
||||
*/
|
||||
hipError_t hipLinkDestroy(hipLinkState_t state);
|
||||
|
||||
/**
|
||||
* @brief launches kernel f with launch parameters and shared memory on stream with arguments passed
|
||||
* to kernelparams or extra
|
||||
|
||||
@@ -22,6 +22,7 @@ THE SOFTWARE.
|
||||
#pragma once
|
||||
|
||||
#include <hip/hip_common.h>
|
||||
#include <hip/linker_types.h>
|
||||
|
||||
#if !defined(__HIP_PLATFORM_AMD__) && defined(__HIP_PLATFORM_NVIDIA__)
|
||||
#include <hip/nvidia_detail/nvidia_hiprtc.h>
|
||||
@@ -41,7 +42,7 @@ extern "C" {
|
||||
*
|
||||
* @addtogroup GlobalDefs
|
||||
* @{
|
||||
*
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* hiprtc error code
|
||||
@@ -56,66 +57,90 @@ typedef enum hiprtcResult {
|
||||
HIPRTC_ERROR_COMPILATION = 6, ///< Compilation error
|
||||
HIPRTC_ERROR_BUILTIN_OPERATION_FAILURE = 7, ///< Failed in builtin operation
|
||||
HIPRTC_ERROR_NO_NAME_EXPRESSIONS_AFTER_COMPILATION = 8, ///< No name expression after compilation
|
||||
HIPRTC_ERROR_NO_LOWERED_NAMES_BEFORE_COMPILATION = 9, ///< No lowered names before compilation
|
||||
HIPRTC_ERROR_NO_LOWERED_NAMES_BEFORE_COMPILATION = 9, ///< No lowered names before compilation
|
||||
HIPRTC_ERROR_NAME_EXPRESSION_NOT_VALID = 10, ///< Invalid name expression
|
||||
HIPRTC_ERROR_INTERNAL_ERROR = 11, ///< Internal error
|
||||
HIPRTC_ERROR_LINKING = 100 ///< Error in linking
|
||||
} hiprtcResult;
|
||||
|
||||
/**
|
||||
* hiprtc JIT option
|
||||
*/
|
||||
|
||||
typedef enum hiprtcJIT_option {
|
||||
HIPRTC_JIT_MAX_REGISTERS = 0, ///< CUDA Only Maximum registers may be used in a thread, passed to compiler
|
||||
HIPRTC_JIT_THREADS_PER_BLOCK, ///< CUDA Only Number of thread per block
|
||||
HIPRTC_JIT_WALL_TIME, ///< CUDA Only Value for total wall clock time
|
||||
HIPRTC_JIT_INFO_LOG_BUFFER, ///< CUDA Only Pointer to the buffer with logged information
|
||||
HIPRTC_JIT_INFO_LOG_BUFFER_SIZE_BYTES, ///< CUDA Only Size of the buffer in bytes for logged info
|
||||
HIPRTC_JIT_ERROR_LOG_BUFFER, ///< CUDA Only Pointer to the buffer with logged error(s)
|
||||
HIPRTC_JIT_ERROR_LOG_BUFFER_SIZE_BYTES, ///< CUDA Only Size of the buffer in bytes for logged error(s)
|
||||
HIPRTC_JIT_OPTIMIZATION_LEVEL, ///< Value of optimization level for generated codes, acceptable options -O0, -O1, -O2, -O3
|
||||
HIPRTC_JIT_TARGET_FROM_HIPCONTEXT, ///< CUDA Only The target context, which is the default
|
||||
HIPRTC_JIT_TARGET, ///< CUDA Only JIT target
|
||||
HIPRTC_JIT_FALLBACK_STRATEGY, ///< CUDA Only Fallback strategy
|
||||
HIPRTC_JIT_GENERATE_DEBUG_INFO, ///< CUDA Only Generate debug information
|
||||
HIPRTC_JIT_LOG_VERBOSE, ///< CUDA Only Generate log verbose
|
||||
HIPRTC_JIT_GENERATE_LINE_INFO, ///< CUDA Only Generate line number information
|
||||
HIPRTC_JIT_CACHE_MODE, ///< CUDA Only Set cache mode
|
||||
HIPRTC_JIT_NEW_SM3X_OPT, ///< @deprecated CUDA Only New SM3X option.
|
||||
HIPRTC_JIT_FAST_COMPILE, ///< CUDA Only Set fast compile
|
||||
HIPRTC_JIT_GLOBAL_SYMBOL_NAMES, ///< CUDA Only Array of device symbol names to be relocated to the host
|
||||
HIPRTC_JIT_GLOBAL_SYMBOL_ADDRESS, ///< CUDA Only Array of host addresses to be relocated to the device
|
||||
HIPRTC_JIT_GLOBAL_SYMBOL_COUNT, ///< CUDA Only Number of symbol count.
|
||||
HIPRTC_JIT_LTO, ///< @deprecated CUDA Only Enable link-time optimization for device code
|
||||
HIPRTC_JIT_FTZ, ///< @deprecated CUDA Only Set single-precision denormals.
|
||||
HIPRTC_JIT_PREC_DIV, ///< @deprecated CUDA Only Set single-precision floating-point division and
|
||||
///< reciprocals
|
||||
HIPRTC_JIT_PREC_SQRT, ///< @deprecated CUDA Only Set single-precision floating-point square root
|
||||
HIPRTC_JIT_FMA, ///< @deprecated CUDA Only Enable floating-point multiplies and adds/subtracts operations
|
||||
HIPRTC_JIT_NUM_OPTIONS, ///< Number of options
|
||||
HIPRTC_JIT_IR_TO_ISA_OPT_EXT = 10000, ///< Linker options to be passed on to compiler
|
||||
/// @note Only supported for the AMD platform.
|
||||
HIPRTC_JIT_IR_TO_ISA_OPT_COUNT_EXT, ///< Count of linker options to be passed on to
|
||||
///< compiler @note Only supported for the AMD platform
|
||||
} hiprtcJIT_option;
|
||||
|
||||
#define hiprtcJIT_option hipJitOption
|
||||
#define HIPRTC_JIT_MAX_REGISTERS hipJitOptionMaxRegisters ///< CUDA Only Maximum registers may be used in a
|
||||
///< thread, passed to compiler
|
||||
#define HIPRTC_JIT_THREADS_PER_BLOCK hipJitOptionThreadsPerBlock ///< CUDA Only Number of thread per block
|
||||
#define HIPRTC_JIT_WALL_TIME hipJitOptionWallTime ///< CUDA Only Value for total wall clock time
|
||||
#define HIPRTC_JIT_INFO_LOG_BUFFER hipJitOptionInfoLogBuffer ///< CUDA Only Pointer to the buffer with
|
||||
///< logged information
|
||||
#define HIPRTC_JIT_INFO_LOG_BUFFER_SIZE_BYTES hipJitOptionInfoLogBufferSizeBytes ///< CUDA Only Size of the buffer
|
||||
///< in bytes for logged info
|
||||
#define HIPRTC_JIT_ERROR_LOG_BUFFER hipJitOptionErrorLogBuffer ///< CUDA Only Pointer to the buffer
|
||||
///< with logged error(s)
|
||||
#define HIPRTC_JIT_ERROR_LOG_BUFFER_SIZE_BYTES hipJitOptionErrorLogBufferSizeBytes ///< CUDA Only Size of the buffer in
|
||||
///< bytes for logged error(s)
|
||||
#define HIPRTC_JIT_OPTIMIZATION_LEVEL hipJitOptionOptimizationLevel ///< Value of optimization level for
|
||||
///< generated codes, acceptable
|
||||
///< options -O0, -O1, -O2, -O3
|
||||
#define HIPRTC_JIT_TARGET_FROM_HIPCONTEXT hipJitOptionTargetFromContext ///< CUDA Only The target context,
|
||||
///< which is the default
|
||||
#define HIPRTC_JIT_TARGET hipJitOptionTarget ///< CUDA Only JIT target
|
||||
#define HIPRTC_JIT_FALLBACK_STRATEGY hipJitOptionFallbackStrategy ///< CUDA Only Fallback strategy
|
||||
#define HIPRTC_JIT_GENERATE_DEBUG_INFO hipJitOptionGenerateDebugInfo ///< CUDA Only Generate debug information
|
||||
#define HIPRTC_JIT_LOG_VERBOSE hipJitOptionLogVerbose ///< CUDA Only Generate log verbose
|
||||
#define HIPRTC_JIT_GENERATE_LINE_INFO hipJitOptionGenerateLineInfo ///< CUDA Only Generate line number information
|
||||
#define HIPRTC_JIT_CACHE_MODE hipJitOptionCacheMode ///< CUDA Only Set cache mode
|
||||
#define HIPRTC_JIT_NEW_SM3X_OPT hipJitOptionSm3xOpt ///< @deprecated CUDA Only New SM3X option.
|
||||
#define HIPRTC_JIT_FAST_COMPILE hipJitOptionFastCompile ///< CUDA Only Set fast compile
|
||||
#define HIPRTC_JIT_GLOBAL_SYMBOL_NAMES hipJitOptionGlobalSymbolNames ///< CUDA Only Array of device symbol names to be
|
||||
///< relocated to the host
|
||||
#define HIPRTC_JIT_GLOBAL_SYMBOL_ADDRESS hipJitOptionGlobalSymbolAddresses ///< CUDA Only Array of host addresses to be
|
||||
///< relocated to the device
|
||||
#define HIPRTC_JIT_GLOBAL_SYMBOL_COUNT hipJitOptionGlobalSymbolCount ///< CUDA Only Number of symbol count.
|
||||
#define HIPRTC_JIT_LTO hipJitOptionLto ///< @deprecated CUDA Only Enable link-time
|
||||
///< optimization for device code
|
||||
#define HIPRTC_JIT_FTZ hipJitOptionFtz ///< @deprecated CUDA Only Set
|
||||
///< single-precision denormals.
|
||||
#define HIPRTC_JIT_PREC_DIV hipJitOptionPrecDiv ///< @deprecated CUDA Only Set
|
||||
///< single-precision floating-point division
|
||||
///< and reciprocals
|
||||
#define HIPRTC_JIT_PREC_SQRT hipJitOptionPrecSqrt ///< @deprecated CUDA Only Set
|
||||
///< single-precision floating-point
|
||||
///< square root
|
||||
#define HIPRTC_JIT_FMA hipJitOptionFma ///< @deprecated CUDA Only Enable
|
||||
///< floating-point multiplies and
|
||||
///< adds/subtracts operations
|
||||
#define HIPRTC_JIT_POSITION_INDEPENDENT_CODE hipJitOptionPositionIndependentCode ///< CUDA Only Generates
|
||||
///< Position Independent code
|
||||
#define HIPRTC_JIT_MIN_CTA_PER_SM hipJitOptionMinCTAPerSM ///< CUDA Only Hints to JIT compiler
|
||||
///< the minimum number of CTAs frin
|
||||
///< kernel's grid to be mapped to SM
|
||||
#define HIPRTC_JIT_MAX_THREADS_PER_BLOCK hipJitOptionMaxThreadsPerBlock ///< CUDA only Maximum number of
|
||||
///< threads in a thread block
|
||||
#define HIPRTC_JIT_OVERRIDE_DIRECT_VALUES hipJitOptionOverrideDirectiveValues ///< CUDA only Override Directive
|
||||
///< Values
|
||||
#define HIPRTC_JIT_NUM_OPTIONS hipJitOptionNumOptions ///< Number of options
|
||||
#define HIPRTC_JIT_IR_TO_ISA_OPT_EXT hipJitOptionIRtoISAOptExt ///< HIP Only Linker options to be
|
||||
///< passed on to compiler
|
||||
#define HIPRTC_JIT_IR_TO_ISA_OPT_COUNT_EXT hipJitOptionIRtoISAOptCountExt ///< HIP Only Count of linker options
|
||||
///< to be passed on to
|
||||
/**
|
||||
* hiprtc JIT input type
|
||||
*/
|
||||
typedef enum hiprtcJITInputType {
|
||||
HIPRTC_JIT_INPUT_CUBIN = 0, ///< Input cubin
|
||||
HIPRTC_JIT_INPUT_PTX, ///< Input PTX
|
||||
HIPRTC_JIT_INPUT_FATBINARY, ///< Input fat binary
|
||||
HIPRTC_JIT_INPUT_OBJECT, ///< Input object
|
||||
HIPRTC_JIT_INPUT_LIBRARY, ///< Input library
|
||||
HIPRTC_JIT_INPUT_NVVM, ///< Input NVVM
|
||||
HIPRTC_JIT_NUM_LEGACY_INPUT_TYPES, ///< Number of legacy input type
|
||||
HIPRTC_JIT_INPUT_LLVM_BITCODE = 100, ///< LLVM bitcode or IR assembly
|
||||
HIPRTC_JIT_INPUT_LLVM_BUNDLED_BITCODE = 101, ///< LLVM bundled bitcode
|
||||
HIPRTC_JIT_INPUT_LLVM_ARCHIVES_OF_BUNDLED_BITCODE = 102, ///< LLVM archives of boundled bitcode
|
||||
HIPRTC_JIT_NUM_INPUT_TYPES = (HIPRTC_JIT_NUM_LEGACY_INPUT_TYPES + 3)
|
||||
} hiprtcJITInputType;
|
||||
#define hiprtcJITInputType hipJitInputType
|
||||
#define HIPRTC_JIT_INPUT_CUBIN hipJitInputCubin ///< Cuda only Input Cubin
|
||||
#define HIPRTC_JIT_INPUT_PTX hipJitInputPtx ///< Cuda only Input PTX
|
||||
#define HIPRTC_JIT_INPUT_FATBINARY hipJitInputFatBinary ///< Cuda Only Input FAT Binary
|
||||
#define HIPRTC_JIT_INPUT_OBJECT hipJitInputObject ///< Cuda Only Host Object with embedded device code
|
||||
#define HIPRTC_JIT_INPUT_LIBRARY hipJitInputLibrary ///< Cuda Only Archive of Host Objects with embedded device code
|
||||
#define HIPRTC_JIT_INPUT_NVVM hipJitInputNvvm ///< @deprecated CUDA only High Level intermediate code for LTO
|
||||
#define HIPRTC_JIT_NUM_LEGACY_INPUT_TYPES hipJitNumLegacyInputTypes ///< Count of Legacy Input Types
|
||||
#define HIPRTC_JIT_INPUT_LLVM_BITCODE hipJitInputLLVMBitcode ///< HIP Only LLVM Bitcode or IR assembly
|
||||
#define HIPRTC_JIT_INPUT_LLVM_BUNDLED_BITCODE hipJitInputLLVMBundledBitcode ///< HIP Only LLVM Clang Bundled Code
|
||||
#define HIPRTC_JIT_INPUT_LLVM_ARCHIVES_OF_BUNDLED_BITCODE hipJitInputLLVMArchivesOfBundledBitcode ///< HIP Only LLVM
|
||||
///< Archives of
|
||||
///< Bundled Bitcode
|
||||
#define HIPRTC_JIT_INPUT_SPIRV hipJitInputSpirv ///< HIP Only SPIRV Code Object
|
||||
#define HIPRTC_JIT_NUM_INPUT_TYPES hipJitNumInputTypes ///< Count of Input Types
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
Εκτελέσιμο αρχείο
+130
@@ -0,0 +1,130 @@
|
||||
|
||||
/*
|
||||
Copyright (c) 2015 - 2023 Advanced Micro Devices, Inc. All rights reserved.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef HIP_INCLUDE_HIP_LINKER_TYPES_H
|
||||
#define HIP_INCLUDE_HIP_LINKER_TYPES_H
|
||||
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wreserved-identifier"
|
||||
#pragma clang diagnostic ignored "-Wreserved-macro-identifier"
|
||||
#endif
|
||||
|
||||
|
||||
#if !defined(__HIP_PLATFORM_AMD__) && defined(__HIP_PLATFORM_NVIDIA__)
|
||||
#elif defined(__HIP_PLATFORM_AMD__) && !defined(__HIP_PLATFORM_NVIDIA__)
|
||||
|
||||
/**
|
||||
* @defgroup LinkerTypes Jit Linker Data Types
|
||||
* @{
|
||||
* This section describes the Jit Linker data types.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* hipJitOption
|
||||
*/
|
||||
typedef enum hipJitOption {
|
||||
hipJitOptionMaxRegisters = 0, ///< CUDA Only Maximum registers may be used in a thread,
|
||||
///< passed to compiler
|
||||
hipJitOptionThreadsPerBlock, ///< CUDA Only Number of thread per block
|
||||
hipJitOptionWallTime, ///< CUDA Only Value for total wall clock time
|
||||
hipJitOptionInfoLogBuffer, ///< CUDA Only Pointer to the buffer with logged information
|
||||
hipJitOptionInfoLogBufferSizeBytes, ///< CUDA Only Size of the buffer in bytes for logged info
|
||||
hipJitOptionErrorLogBuffer, ///< CUDA Only Pointer to the buffer with logged error(s)
|
||||
hipJitOptionErrorLogBufferSizeBytes, ///< CUDA Only Size of the buffer in bytes for logged error(s)
|
||||
hipJitOptionOptimizationLevel, ///< Value of optimization level for generated codes, acceptable options
|
||||
///< -O0, -O1, -O2, -O3
|
||||
hipJitOptionTargetFromContext, ///< CUDA Only The target context, which is the default
|
||||
hipJitOptionTarget, ///< CUDA Only JIT target
|
||||
hipJitOptionFallbackStrategy, ///< CUDA Only Fallback strategy
|
||||
hipJitOptionGenerateDebugInfo, ///< CUDA Only Generate debug information
|
||||
hipJitOptionLogVerbose, ///< CUDA Only Generate log verbose
|
||||
hipJitOptionGenerateLineInfo, ///< CUDA Only Generate line number information
|
||||
hipJitOptionCacheMode, ///< CUDA Only Set cache mode
|
||||
hipJitOptionSm3xOpt, ///< @deprecated CUDA Only New SM3X option.
|
||||
hipJitOptionFastCompile, ///< CUDA Only Set fast compile
|
||||
hipJitOptionGlobalSymbolNames, ///< CUDA Only Array of device symbol names to be relocated to the host
|
||||
hipJitOptionGlobalSymbolAddresses, ///< CUDA Only Array of host addresses to be relocated to the device
|
||||
hipJitOptionGlobalSymbolCount, ///< CUDA Only Number of symbol count.
|
||||
hipJitOptionLto, ///< @deprecated CUDA Only Enable link-time optimization for device code
|
||||
hipJitOptionFtz, ///< @deprecated CUDA Only Set single-precision denormals.
|
||||
hipJitOptionPrecDiv, ///< @deprecated CUDA Only Set single-precision floating-point division
|
||||
///< and reciprocals
|
||||
hipJitOptionPrecSqrt, ///< @deprecated CUDA Only Set single-precision floating-point square root
|
||||
hipJitOptionFma, ///< @deprecated CUDA Only Enable floating-point multiplies and
|
||||
///< adds/subtracts operations
|
||||
hipJitOptionPositionIndependentCode, ///< CUDA Only Generates Position Independent code
|
||||
hipJitOptionMinCTAPerSM, ///< CUDA Only Hints to JIT compiler the minimum number of CTAs frin kernel's
|
||||
///< grid to be mapped to SM
|
||||
hipJitOptionMaxThreadsPerBlock, ///< CUDA only Maximum number of threads in a thread block
|
||||
hipJitOptionOverrideDirectiveValues, ///< Cuda only Override Directive values
|
||||
hipJitOptionNumOptions, ///< Number of options
|
||||
hipJitOptionIRtoISAOptExt = 10000, ///< Hip Only Linker options to be passed on to compiler
|
||||
hipJitOptionIRtoISAOptCountExt, ///< Hip Only Count of linker options to be passed on to compiler
|
||||
} hipJitOption;
|
||||
/**
|
||||
* hipJitInputType
|
||||
*/
|
||||
typedef enum hipJitInputType {
|
||||
hipJitInputCubin = 0, ///< Cuda only Input cubin
|
||||
hipJitInputPtx, ///< Cuda only Input PTX
|
||||
hipJitInputFatBinary, ///< Cuda Only Input FAT Binary
|
||||
hipJitInputObject, ///< Cuda Only Host Object with embedded device code
|
||||
hipJitInputLibrary, ///< Cuda Only Archive of Host Objects with embedded
|
||||
///< device code
|
||||
hipJitInputNvvm, ///< @deprecated Cuda only High Level intermediate
|
||||
///< code for LTO
|
||||
hipJitNumLegacyInputTypes, ///< Count of Legacy Input Types
|
||||
hipJitInputLLVMBitcode = 100, ///< HIP Only LLVM Bitcode or IR assembly
|
||||
hipJitInputLLVMBundledBitcode = 101, ///< HIP Only LLVM Clang Bundled Code
|
||||
hipJitInputLLVMArchivesOfBundledBitcode = 102, ///< HIP Only LLVM Archive of Bundled Bitcode
|
||||
hipJitInputSpirv = 103, ///< HIP Only SPIRV Code Object
|
||||
hipJitNumInputTypes = 10 ///< Count of Input Types
|
||||
} hipJitInputType;
|
||||
/**
|
||||
* hipJitCacheMode
|
||||
*/
|
||||
typedef enum hipJitCacheMode {
|
||||
hipJitCacheOptionNone = 0,
|
||||
hipJitCacheOptionCG,
|
||||
hipJitCacheOptionCA
|
||||
} hipJitCacheMode;
|
||||
/**
|
||||
* hipJitFallback
|
||||
*/
|
||||
typedef enum hipJitFallback {
|
||||
hipJitPreferPTX = 0,
|
||||
hipJitPreferBinary,
|
||||
} hipJitFallback;
|
||||
|
||||
// doxygen end LinkerTypes
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
#else
|
||||
#error("Must define exactly one of __HIP_PLATFORM_AMD__ or __HIP_PLATFORM_NVIDIA__");
|
||||
#endif
|
||||
|
||||
#endif // HIP_INCLUDE_HIP_LINKER_TYPES_H
|
||||
Αναφορά σε νέο ζήτημα
Block a user