Utilities¶
HPPL Base¶
hl_base.h¶
Defines
-
HL_FLOAT_MAX
¶ HPPL data type: real (float or double)
if real == float
HL_FLOAT_MAX: 3.40282347e+38F
HL_FLOAT_MIN: 1.17549435e-38F
-
HL_FLOAT_MIN
¶ if real == double
HL_FLOAT_MAX: 1.7976931348623157e+308
HL_FLOAT_MIN: 2.2250738585072014e-308
-
DIVUP
(x, y)¶ DIVUP(x, y) is similar to ceil(x / y).
- Note
- For CUDA, DIVUP will be used to specify the size of blockDim.
Typedefs
-
typedef struct _hl_matrix_s *
hl_matrix_s
¶
-
typedef struct _hl_sparse_matrix_s *
hl_sparse_matrix_s
¶
Enums
-
enum
hl_stream_t
¶ HPPL CUDA Stream.
HPPL is an internal high performance parallel computing library for high-level neural network routines, which can support many heterogeneous compute architectures, such as GPU, FPGA, etc.
- Note
- Each thread can use HPPL_STREAM_* after calling hl_init. HPPL_STREAM_DEFAULT is HPPL default stream.
Values:
-
HPPL_STREAM_DEFAULT
= 0¶
-
HPPL_STREAM_1
= 1¶
-
HPPL_STREAM_2
= 2¶
-
HPPL_STREAM_3
= 3¶
-
HPPL_STREAM_4
= 4¶
-
HPPL_THREAD_STREAM_1
= 5¶
-
HPPL_THREAD_STREAM_2
= 6¶
-
HPPL_THREAD_STREAM_3
= 7¶
-
HPPL_THREAD_STREAM_4
= 8¶
-
HPPL_STREAM_END
¶
-
enum
hl_activation_mode_t
¶ HPPL activation mode.
Values:
-
HL_ACTIVATION_SIGMOID
= 0¶
-
HL_ACTIVATION_RELU
= 1¶
-
HL_ACTIVATION_TANH
= 2¶
-
HL_ACTIVATION_LINEAR
= 3¶
-
HL_ACTIVATION_END
¶
-
-
struct
hl_lstm_value
¶ - #include <hl_base.h>
Lstm value.
- Parameters
gateValue
-input value.
prevStateValue
-previous state value.
stateValue
-state value.
stateActiveValue
-state active value.
outputValue
-output value.
-
struct
hl_lstm_grad
¶ - #include <hl_base.h>
Lstm gradient.
- Parameters
gateGrad
-input gradient.
prevStateGrad
-previous state gradient.
stateGrad
-state gradient.
stateActiveGrad
-state active gradient.
outputGrad
-output gradient.
-
struct
hl_gru_value
¶ - #include <hl_base.h>
Gru value.
- Parameters
gateWeight
-gate weight (updateGate + resetGate).
stateWeight
-frame state weight.
gateValue
-gate value results.
resetOutputValue
-resetOutput value.
outputValue
-output value.
prevOutValue
-previous output value.
-
struct
hl_gru_grad
¶ - #include <hl_base.h>
Gru gradient.
- Parameters
gateWeightGrad
-gate weight gradient.
stateWeightGrad
-frame state weight gradient.
gateGrad
-gate gradient results.
resetOutputGrad
-resetOutput gradient.
outputGrad
-output gradient.
prevOutGrad
-previous output gradient.
-
struct
_hl_sparse_matrix_s
¶ - #include <hl_base.h>
HPPL sparse matrix.
- Parameters
matrix
-sparse matrix.
format
-matrix format.
type
-the type of matrix values.
rows
-matrix rows.
cols
-matrix columns.
nnz
-nonzero values of sparse matrix.
Public Members
-
hl_matrix_s
matrix
¶
-
hl_matrix_format_t
format
¶
-
hl_matrix_value_t
type
¶
-
int
rows
¶
-
int
cols
¶
-
size_t
nnz
¶
Timer¶
Thread Resource¶
hl_thread.ph¶
Defines
-
HL_THREAD_PH_
¶
Typedefs
-
typedef struct _hl_thread_resource *
hl_thread_resource
¶
Functions
-
void
hl_cudnn_init
(cudnnHandle_t *cudnn_handle, cudaStream_t stream)¶ Initialize cudnn.
- Parameters
cudnn_handle
-Cudnn handle.
stream
-Cudnn stream.
-
void
hl_cublas_init
(cublasHandle_t *cublas_handle, cudaStream_t stream)¶ Initialize cublas.
- Parameters
cublas_handle
-Cublas handle.
stream
-Cuda stream.
-
void
hl_cudnn_desc_init
(cudnnTensorDescriptor_t *cudnn_desc)¶ Initialize cudnn tensor descriptor.
- Parameters
cudnn_desc
-Cudnn tensor descriptor.
Variables
-
__thread _hl_thread_resource t_resource
thread resource.
-
struct
_hl_thread_resource
¶ Thread resource structure.
- Parameters
stream[HPPL_STREAM_END]
-Stream for thread.
handle
-Cublas Handle.
gen
-Curand Generator.
cudnn_handle
-Cudnn handle.
cudnn_desc
-Cudnn image descriptor.
*gen_mutex
-Gen lock.
*gpu_mem
-HPPL GPU Memory.
*cpu_mem
-HPPL CPU Memory.
event
-gpu_mem event.
device
-Thread device context.
major
-Compute capability.
is_init
-Thread init or not.