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.