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
-
EXP_MAX_INPUT¶ The maximum input value for exp, used to avoid overflow problem.
Currently only used for tanh function.
-
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.