← Back to C-Kernel-Engine Docs Doxygen Source Documentation
 
Loading...
Searching...
No Matches
sigmoid_kernels.c File Reference

Sigmoid activation kernels with SIMD (AVX512) More...

#include <math.h>
#include <stddef.h>
#include <stdlib.h>

Go to the source code of this file.

Functions

void sigmoid_backward (const float *input, const float *d_output, float *d_input, size_t n)
 
void sigmoid_forward (const float *input, float *output, size_t n)
 
float sigmoid_scalar (float x)
 

Detailed Description

Sigmoid activation kernels with SIMD (AVX512)

CK-ENGINE KERNEL RULES:

  1. NO malloc/free - memory via bump allocator, pointers passed in
  2. NO OpenMP - parallelization at orchestrator/codegen layer
  3. API must define: inputs, outputs, workspace, and memory layouts
  4. Pure computation - deterministic, no side effects

After changes: make test && make llamacpp-parity-full

Sigmoid: y = 1 / (1 + exp(-x))

Definition in file sigmoid_kernels.c.

Function Documentation

◆ sigmoid_backward()

void sigmoid_backward ( const float *  input,
const float *  d_output,
float *  d_input,
size_t  n 
)

Definition at line 138 of file sigmoid_kernels.c.

142{
143#if defined(__AVX512F__)
144 sigmoid_backward_avx512(input, d_output, d_input, n);
145#else
146 for (size_t i = 0; i < n; ++i) {
147 float x = input[i];
148 float s = sigmoid_scalar(x);
149 float s_prime = s * (1.0f - s);
150 d_input[i] = d_output[i] * s_prime;
151 }
152#endif
153}
float sigmoid_scalar(float x)

References sigmoid_scalar().

Referenced by sigmoid_backward_bf16().

◆ sigmoid_forward()

void sigmoid_forward ( const float *  input,
float *  output,
size_t  n 
)

Definition at line 122 of file sigmoid_kernels.c.

125{
126#if defined(__AVX512F__)
127 sigmoid_forward_avx512(input, output, n);
128#else
129 for (size_t i = 0; i < n; ++i) {
130 output[i] = sigmoid_scalar(input[i]);
131 }
132#endif
133}

References sigmoid_scalar().

Referenced by sigmoid_forward_bf16().

◆ sigmoid_scalar()

float sigmoid_scalar ( float  x)

Definition at line 26 of file sigmoid_kernels.c.

27{
28 return 1.0f / (1.0f + expf(-x));
29}

Referenced by sigmoid_backward(), sigmoid_forward(), swiglu_backward(), swiglu_backward_bf16(), swiglu_forward(), swiglu_forward_bf16(), and swiglu_forward_q8_k().