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.