|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef LYRA_CODEC_SPARSE_MATMUL_COMPUTE_MATMUL_GENERIC_H_ |
|
#define LYRA_CODEC_SPARSE_MATMUL_COMPUTE_MATMUL_GENERIC_H_ |
|
|
|
#include <cstdint> |
|
|
|
namespace csrblocksparse { |
|
namespace detail { |
|
|
|
|
|
void MatVecFloatGeneric(const float* weights, const float* rhs, |
|
const float* bias, const int32_t* nnz_per_row, |
|
const int16_t* rhs_indices, int start_row, int end_row, |
|
int block_height, int block_width, bool relu, |
|
int replicas, int stride, float* output); |
|
void MatVecFixedGeneric(const int16_t* weights, const int16_t* rhs, |
|
const int32_t* bias, const int32_t* nnz_per_row, |
|
const int16_t* rhs_indices, int start_row, int end_row, |
|
int block_height, int block_width, bool relu, |
|
int bytes_out, int shift_out, int replicas, int stride, |
|
void* output); |
|
|
|
} |
|
} |
|
|
|
#endif |
|
|