← Back to C-Kernel-Engine Docs Doxygen Source Documentation
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)