SMAUG
Simulating Machine Learning Applications on gem5-Aladdin
ref_sigmoid_op.cpp
1 #include "smaug/core/backend.h"
3 #include "smaug/operators/sigmoid_op.h"
4 #include "smaug/operators/ref/ref_activation_fun_op.h"
5 
6 namespace smaug {
7 
8 template <>
9 void SigmoidOp<ReferenceBackend>::run() {
10  auto inputs = getInput(Inputs);
11  auto outputs = getOutput(Outputs);
12  assert(inputs->getShape() == outputs->getShape());
13  float* inputData = inputs->data<float>();
14  float* outputData = outputs->data<float>();
15  mapArrayToAccel(ref::kEltwiseOpHw, "inputs", inputData,
16  inputs->getShape().storageSize() * sizeof(float));
17  mapArrayToAccel(ref::kEltwiseOpHw, "results", outputData,
18  inputs->getShape().storageSize() * sizeof(float));
19  activation_type function = activation_type::SIGMOID;
20  activation_param_t params;
21  invokeKernel(ref::kEltwiseOpHw, ref_activation_fun_nc, inputData,
22  outputData, inputs->getShape().size(), function, params);
23 }
24 
25 } // namespace smaug
activation_type
enum _activation_type activation_type
The activation function to apply to an operator's output in hardware.
ref_activation_fun_nc
void ref_activation_fun_nc(float *inputs, float *results, int inputs_size, activation_type function, activation_param_t params)
Top level entry point for all Reference activation functions.
Definition: ref_activation_fun_op.cpp:8
_activation_param_t
Parameters to the activation function hardware.
Definition: common.h:194
smaug
The smaug namespace is the parent namespace of all C++ code in SMAUG.
Definition: backend.cpp:38
common.h
Utilities for writing and invoking Aladdin kernels from Operators.
smaug::mapArrayToAccel
void mapArrayToAccel(unsigned reqCode, const char *arrayName, void *baseAddr, size_t size)
Maps an array of data to the accelerator.
Definition: common.cpp:12
smaug::invokeKernel
void invokeKernel(int accelIdx, unsigned reqCode, const Kernel &kernel, Args &&... args)
The generic blocking interface for all accelerator kernel functions.
Definition: common.h:72