HIP: Heterogenous-computing Interface for Portability
Typedefs | Enumerations | Functions
Runtime Compilation

This section describes the runtime compilation functions of HIP runtime API. More...

Collaboration diagram for Runtime Compilation:

Typedefs

typedef enum hiprtcResult hiprtcResult
 
typedef struct _hiprtcProgram * hiprtcProgram
 

Enumerations

enum  hiprtcResult {
  HIPRTC_SUCCESS = 0, HIPRTC_ERROR_OUT_OF_MEMORY = 1, HIPRTC_ERROR_PROGRAM_CREATION_FAILURE = 2, HIPRTC_ERROR_INVALID_INPUT = 3,
  HIPRTC_ERROR_INVALID_PROGRAM = 4, HIPRTC_ERROR_INVALID_OPTION = 5, HIPRTC_ERROR_COMPILATION = 6, HIPRTC_ERROR_BUILTIN_OPERATION_FAILURE = 7,
  HIPRTC_ERROR_NO_NAME_EXPRESSIONS_AFTER_COMPILATION = 8, HIPRTC_ERROR_NO_LOWERED_NAMES_BEFORE_COMPILATION = 9, HIPRTC_ERROR_NAME_EXPRESSION_NOT_VALID = 10, HIPRTC_ERROR_INTERNAL_ERROR = 11
}
 

Functions

const char * hiprtcGetErrorString (hiprtcResult result)
 Returns text string message to explain the error which occurred. More...
 
hiprtcResult hiprtcVersion (int *major, int *minor)
 Sets the parameters as major and minor version. More...
 
hiprtcResult hiprtcAddNameExpression (hiprtcProgram prog, const char *name_expression)
 Adds the given name exprssion to the runtime compilation program. More...
 
hiprtcResult hiprtcCompileProgram (hiprtcProgram prog, int numOptions, const char **options)
 Compiles the given runtime compilation program. More...
 
hiprtcResult hiprtcCreateProgram (hiprtcProgram *prog, const char *src, const char *name, int numHeaders, const char **headers, const char **includeNames)
 Creates an instance of hiprtcProgram with the given input parameters, and sets the output hiprtcProgram prog with it. More...
 
hiprtcResult hiprtcDestroyProgram (hiprtcProgram *prog)
 Destroys an instance of given hiprtcProgram. More...
 
hiprtcResult hiprtcGetLoweredName (hiprtcProgram prog, const char *name_expression, const char **lowered_name)
 Gets the lowered (mangled) name from an instance of hiprtcProgram with the given input parameters, and sets the output lowered_name with it. More...
 
hiprtcResult hiprtcGetProgramLog (hiprtcProgram prog, char *log)
 Gets the log generated by the runtime compilation program instance. More...
 
hiprtcResult hiprtcGetProgramLogSize (hiprtcProgram prog, size_t *logSizeRet)
 Gets the size of log generated by the runtime compilation program instance. More...
 
hiprtcResult hiprtcGetCode (hiprtcProgram prog, char *code)
 Gets the pointer of compilation binary by the runtime compilation program instance. More...
 
hiprtcResult hiprtcGetCodeSize (hiprtcProgram prog, size_t *codeSizeRet)
 Gets the size of compilation binary by the runtime compilation program instance. More...
 

Detailed Description

This section describes the runtime compilation functions of HIP runtime API.



Function Documentation

◆ hiprtcAddNameExpression()

hiprtcResult hiprtcAddNameExpression ( hiprtcProgram  prog,
const char *  name_expression 
)

Adds the given name exprssion to the runtime compilation program.

Parameters
[in]progruntime compilation program instance.
[in]name_expressionconst char pointer to the name expression.
Returns
HIPRTC_SUCCESS

If const char pointer is NULL, it will return HIPRTC_ERROR_INVALID_INPUT.

See also
hiprtcResult

◆ hiprtcCompileProgram()

hiprtcResult hiprtcCompileProgram ( hiprtcProgram  prog,
int  numOptions,
const char **  options 
)

Compiles the given runtime compilation program.

Parameters
[in]progruntime compilation program instance.
[in]numOptionsnumber of compiler options.
[in]optionscompiler options as const array of strins.
Returns
HIPRTC_SUCCESS

If the compiler failed to build the runtime compilation program, it will return HIPRTC_ERROR_COMPILATION.

See also
hiprtcResult

◆ hiprtcCreateProgram()

hiprtcResult hiprtcCreateProgram ( hiprtcProgram *  prog,
const char *  src,
const char *  name,
int  numHeaders,
const char **  headers,
const char **  includeNames 
)

Creates an instance of hiprtcProgram with the given input parameters, and sets the output hiprtcProgram prog with it.

Parameters
[in,out]progruntime compilation program instance.
[in]srcconst char pointer to the program source.
[in]nameconst char pointer to the program name.
[in]numHeadersnumber of headers.
[in]headersarray of strings pointing to headers.
[in]includeNamesarray of strings pointing to names included in program source.
Returns
HIPRTC_SUCCESS

Any invalide input parameter, it will return HIPRTC_ERROR_INVALID_INPUT or HIPRTC_ERROR_INVALID_PROGRAM.

If failed to create the program, it will return HIPRTC_ERROR_PROGRAM_CREATION_FAILURE.

See also
hiprtcResult

◆ hiprtcDestroyProgram()

hiprtcResult hiprtcDestroyProgram ( hiprtcProgram *  prog)

Destroys an instance of given hiprtcProgram.

Parameters
[in]progruntime compilation program instance.
Returns
HIPRTC_SUCCESS

If prog is NULL, it will return HIPRTC_ERROR_INVALID_INPUT.

See also
hiprtcResult

◆ hiprtcGetCode()

hiprtcResult hiprtcGetCode ( hiprtcProgram  prog,
char *  code 
)

Gets the pointer of compilation binary by the runtime compilation program instance.

Parameters
[in]progruntime compilation program instance.
[out]codechar pointer to binary.
Returns
HIPRTC_SUCCESS
See also
hiprtcResult

◆ hiprtcGetCodeSize()

hiprtcResult hiprtcGetCodeSize ( hiprtcProgram  prog,
size_t *  codeSizeRet 
)

Gets the size of compilation binary by the runtime compilation program instance.

Parameters
[in]progruntime compilation program instance.
[out]codethe size of binary.
Returns
HIPRTC_SUCCESS
See also
hiprtcResult

◆ hiprtcGetErrorString()

const char* hiprtcGetErrorString ( hiprtcResult  result)

Returns text string message to explain the error which occurred.

Parameters
[in]resultcode to convert to string.
Returns
const char pointer to the NULL-terminated error string
Warning
In HIP, this function returns the name of the error, if the hiprtc result is defined, it will return "Invalid HIPRTC error code"
See also
hiprtcResult

◆ hiprtcGetLoweredName()

hiprtcResult hiprtcGetLoweredName ( hiprtcProgram  prog,
const char *  name_expression,
const char **  lowered_name 
)

Gets the lowered (mangled) name from an instance of hiprtcProgram with the given input parameters, and sets the output lowered_name with it.

Parameters
[in]progruntime compilation program instance.
[in]name_expressionconst char pointer to the name expression.
[in,out]lowered_nameconst char array to the lowered (mangled) name.
Returns
HIPRTC_SUCCESS

If any invalide nullptr input parameters, it will return HIPRTC_ERROR_INVALID_INPUT

If name_expression is not found, it will return HIPRTC_ERROR_NAME_EXPRESSION_NOT_VALID

If failed to get lowered_name from the program, it will return HIPRTC_ERROR_COMPILATION.

See also
hiprtcResult

◆ hiprtcGetProgramLog()

hiprtcResult hiprtcGetProgramLog ( hiprtcProgram  prog,
char *  log 
)

Gets the log generated by the runtime compilation program instance.

Parameters
[in]progruntime compilation program instance.
[out]logmemory pointer to the generated log.
Returns
HIPRTC_SUCCESS
See also
hiprtcResult

◆ hiprtcGetProgramLogSize()

hiprtcResult hiprtcGetProgramLogSize ( hiprtcProgram  prog,
size_t *  logSizeRet 
)

Gets the size of log generated by the runtime compilation program instance.

Parameters
[in]progruntime compilation program instance.
[out]logSizeRetsize of generated log.
Returns
HIPRTC_SUCCESS
See also
hiprtcResult

◆ hiprtcVersion()

hiprtcResult hiprtcVersion ( int *  major,
int *  minor 
)

Sets the parameters as major and minor version.

Parameters
[out]majorHIP Runtime Compilation major version.
[out]minorHIP Runtime Compilation minor version.