ae2f_docs
Mlp.cl.c File Reference
#include "./Mlp.auto.h"

Go to the source code of this file.

Macros

#define ae2f_NEED_CLASS   0
#define ACT(layer_idx, r, x)
#define ACT_DERIV(layer_idx, r, x)
#define LOSS_DERIV(r, y, y_desired, i, c)
#define pgsz   sz
#define pgsz_sqr   (pgsz * pgsz)
#define lsz   lsz
#define llsz   (lsz - 1)
#define p_layerszlist   CAST(__global uint32_t*, glob)
 lsz * sizeof(uint32_t)
#define p_outstream   (CAST(__global ae2f_float_t*, p_layerszlist + lsz))
 sizeof(ae2f_float_t) * lsz * pgsz
#define p_inp   p_outstream
#define p_weight   (p_outstream + lsz * pgsz)
 sizeof(ae2f_float_t) * pgsz_sqr * llsz
#define p_bias   (p_weight + pgsz_sqr * llsz)
 sizeof(ae2f_float_t) * pgsz * llsz
#define p_deltastream   (p_bias + llsz * pgsz)
 sizeof(ae2f_float_t) * pgsz * llsz
#define p_goal   (p_deltastream + llsz * pgsz)
 sizeof(ae2f_float_t) * pgsz
#define _r_inp(lidx)
#define _r_out(lidx)
#define _r_weight(lidx)
#define _r_bias(lidx)
#define _r_delta(lidx)
#define _r_isz(lidx)
#define _r_osz(lidx)
#define r_inp   _r_inp(lidx)
#define r_out   _r_out(lidx)
#define r_weight   _r_weight(lidx)
#define r_bias   _r_bias(lidx)
#define r_delta   _r_delta(lidx)
#define r_isz   _r_isz(lidx)
#define r_osz   _r_osz(lidx)
#define r_inp_then   _r_inp(lidx-1)
#define r_out_then   _r_out(lidx-1)
#define r_weight_then   _r_weight(lidx-1)
#define r_bias_then   _r_bias(lidx-1)
#define r_delta_then   _r_delta(lidx-1)
#define r_isz_then   _r_isz(lidx-1)
#define r_osz_then   _r_osz(lidx-1)
#define l_inp(O_R)
#define l_out(O_R)
#define lp_deltastream   ((loc) + pgsz * ((lsz)))
#define l_delta   (lp_deltastream + pgsz * ((lidx) & 1))
#define l_delta_then   (lp_deltastream + pgsz * (!((lidx) & 1)))
#define ACT_RUN(r, x)
#define ACT_DERIV_RUN(r, x)
#define ACT_RUN_THEN(r, x)
#define ACT_DERIV_RUN_THEN(r, x)
#define lsz   lr.m_lsz.m_u
#define m_weight   m_weight.m_f
#define m_bias   m_bias.m_f
#define lsz   lr.m_lsz.m_u
#define m_weight   m_weight.m_f
#define m_bias   m_bias.m_f

Typedefs

typedef char STATIC_ASSERT_LRLSZEL_SZ[sizeof(lrlszel_t)==(sizeof(uint32_t) > sizeof(ae2f_float_t) ? sizeof(uint32_t) :sizeof(ae2f_float_t)) ? 1 :-1]
typedef char STATIC_ASSERT_LRLSZ_SZ[sizeof(lrlsz_t)==sizeof(lrlszel_t) *3 ? 1 :-1]

Functions

__kernel void kPredict (__global void *glob, __local ae2f_float_t *loc, const uint32_t lsz)
 loc ae2f_float_t[Page]: inp ae2f_float_t[Page]: out
__kernel void kPredictStream (__global void *glob, __local ae2f_float_t *loc, const uint32_t lsz)
 loc ae2f_float_t[Page]: inp ae2f_float_t[Page]: out
 ae2f_structdef (union, lrlszel_t)
const ae2f_structdef (struct, lrlsz_t)
__kernel void kFollow (__global void *glob, __local ae2f_float_t *loc, lrlsz_t lr)
 loc ae2f_float_t[lsz - 1][Page]: OutStream ae2f_float_t[lsz - 1][Page]: DeltaStream
__kernel void kTrainAuto (__global void *glob, __local ae2f_float_t *loc, lrlsz_t lr)
 loc ae2f_float_t[lsz - 1][Page]: OutStream ae2f_float_t[lsz - 1][Page]: DeltaStream

Macro Definition Documentation

◆ _r_bias

#define _r_bias ( lidx)
Value:
(p_bias + pgsz * (lidx))
#define pgsz
Definition Mlp.cl.c:21
#define p_bias
sizeof(ae2f_float_t) * pgsz * llsz
Definition Mlp.cl.c:40

Definition at line 52 of file Mlp.cl.c.

◆ _r_delta

#define _r_delta ( lidx)
Value:
(p_deltastream + pgsz * (lidx))
#define p_deltastream
sizeof(ae2f_float_t) * pgsz * llsz
Definition Mlp.cl.c:43

Definition at line 53 of file Mlp.cl.c.

◆ _r_inp

#define _r_inp ( lidx)
Value:
(p_outstream + pgsz * (lidx))
#define p_outstream
sizeof(ae2f_float_t) * lsz * pgsz
Definition Mlp.cl.c:33

Definition at line 49 of file Mlp.cl.c.

◆ _r_isz

#define _r_isz ( lidx)
Value:
((p_layerszlist)[lidx])
#define p_layerszlist
lsz * sizeof(uint32_t)
Definition Mlp.cl.c:31

Definition at line 54 of file Mlp.cl.c.

◆ _r_osz

#define _r_osz ( lidx)
Value:
((p_layerszlist)[(lidx) + 1])

Definition at line 55 of file Mlp.cl.c.

◆ _r_out

#define _r_out ( lidx)
Value:
(p_outstream + pgsz * ((lidx) + 1))

Definition at line 50 of file Mlp.cl.c.

◆ _r_weight

#define _r_weight ( lidx)
Value:
(p_weight + pgsz_sqr * (lidx))
#define p_weight
sizeof(ae2f_float_t) * pgsz_sqr * llsz
Definition Mlp.cl.c:37
#define pgsz_sqr
Definition Mlp.cl.c:22

Definition at line 51 of file Mlp.cl.c.

◆ ACT

#define ACT ( layer_idx,
r,
x )

Definition at line 10 of file Mlp.cl.c.

◆ ACT_DERIV

#define ACT_DERIV ( layer_idx,
r,
x )

Definition at line 14 of file Mlp.cl.c.

◆ ACT_DERIV_RUN

#define ACT_DERIV_RUN ( r,
x )
Value:
ACT_DERIV(lidx, r, x)
#define ACT_DERIV(layer_idx, r, x)
Definition Mlp.cl.c:14

Definition at line 82 of file Mlp.cl.c.

◆ ACT_DERIV_RUN_THEN

#define ACT_DERIV_RUN_THEN ( r,
x )
Value:
ACT_DERIV((lidx - 1), r, x)

Definition at line 85 of file Mlp.cl.c.

◆ ACT_RUN

#define ACT_RUN ( r,
x )
Value:
ACT(lidx, r, x)
#define ACT(layer_idx, r, x)
Definition Mlp.cl.c:10

For every runners

Definition at line 81 of file Mlp.cl.c.

◆ ACT_RUN_THEN

#define ACT_RUN_THEN ( r,
x )
Value:
ACT((lidx - 1), r, x)

Definition at line 84 of file Mlp.cl.c.

◆ ae2f_NEED_CLASS

#define ae2f_NEED_CLASS   0

Definition at line 1 of file Mlp.cl.c.

◆ l_delta

#define l_delta   (lp_deltastream + pgsz * ((lidx) & 1))

Definition at line 77 of file Mlp.cl.c.

◆ l_delta_then

#define l_delta_then   (lp_deltastream + pgsz * (!((lidx) & 1)))

Definition at line 78 of file Mlp.cl.c.

◆ l_inp

#define l_inp ( O_R)
Value:
(((loc) + pgsz * ((lidx) O_R)))
ae2f_float_t *const loc
Definition Slp.h:15

Definition at line 73 of file Mlp.cl.c.

◆ l_out

#define l_out ( O_R)
Value:
(((loc) + pgsz * ((lidx + 1) O_R)))

Definition at line 74 of file Mlp.cl.c.

◆ llsz

#define llsz   (lsz - 1)

count of layer.

Definition at line 28 of file Mlp.cl.c.

◆ LOSS_DERIV

#define LOSS_DERIV ( r,
y,
y_desired,
i,
c )

Definition at line 18 of file Mlp.cl.c.

◆ lp_deltastream

#define lp_deltastream   ((loc) + pgsz * ((lsz)))

Definition at line 76 of file Mlp.cl.c.

◆ lsz [1/3]

#define lsz   lsz

length of p_layerszlist

Definition at line 25 of file Mlp.cl.c.

◆ lsz [2/3]

#define lsz   lr.m_lsz.m_u

length of p_layerszlist

Definition at line 25 of file Mlp.cl.c.

◆ lsz [3/3]

#define lsz   lr.m_lsz.m_u

length of p_layerszlist

Definition at line 25 of file Mlp.cl.c.

◆ m_bias [1/2]

#define m_bias   m_bias.m_f

◆ m_bias [2/2]

#define m_bias   m_bias.m_f

◆ m_weight [1/2]

#define m_weight   m_weight.m_f

◆ m_weight [2/2]

#define m_weight   m_weight.m_f

◆ p_bias

__local ae2f_float_t *const const ae2f_float_t *const const ae2f_float_t *const const ae2f_float_t *const p_bias   (p_weight + pgsz_sqr * llsz)

sizeof(ae2f_float_t) * pgsz * llsz

Definition at line 40 of file Mlp.cl.c.

◆ p_deltastream

#define p_deltastream   (p_bias + llsz * pgsz)

sizeof(ae2f_float_t) * pgsz * llsz

Definition at line 43 of file Mlp.cl.c.

◆ p_goal

#define p_goal   (p_deltastream + llsz * pgsz)

sizeof(ae2f_float_t) * pgsz

Definition at line 46 of file Mlp.cl.c.

◆ p_inp

__local ae2f_float_t *const const ae2f_float_t *const p_inp   p_outstream

Definition at line 34 of file Mlp.cl.c.

◆ p_layerszlist

#define p_layerszlist   CAST(__global uint32_t*, glob)

lsz * sizeof(uint32_t)

Definition at line 31 of file Mlp.cl.c.

◆ p_outstream

#define p_outstream   (CAST(__global ae2f_float_t*, p_layerszlist + lsz))

sizeof(ae2f_float_t) * lsz * pgsz

Definition at line 33 of file Mlp.cl.c.

◆ p_weight

__local ae2f_float_t *const const ae2f_float_t *const const ae2f_float_t *const p_weight   (p_outstream + lsz * pgsz)

sizeof(ae2f_float_t) * pgsz_sqr * llsz

Definition at line 37 of file Mlp.cl.c.

◆ pgsz

#define pgsz   sz

Definition at line 21 of file Mlp.cl.c.

◆ pgsz_sqr

#define pgsz_sqr   (pgsz * pgsz)

Definition at line 22 of file Mlp.cl.c.

◆ r_bias

#define r_bias   _r_bias(lidx)

Definition at line 60 of file Mlp.cl.c.

◆ r_bias_then

#define r_bias_then   _r_bias(lidx-1)

Definition at line 68 of file Mlp.cl.c.

◆ r_delta

#define r_delta   _r_delta(lidx)

Definition at line 61 of file Mlp.cl.c.

◆ r_delta_then

#define r_delta_then   _r_delta(lidx-1)

Definition at line 69 of file Mlp.cl.c.

◆ r_inp

#define r_inp   _r_inp(lidx)

Definition at line 57 of file Mlp.cl.c.

◆ r_inp_then

#define r_inp_then   _r_inp(lidx-1)

Definition at line 65 of file Mlp.cl.c.

◆ r_isz

#define r_isz   _r_isz(lidx)

Definition at line 62 of file Mlp.cl.c.

◆ r_isz_then

#define r_isz_then   _r_isz(lidx-1)

Definition at line 70 of file Mlp.cl.c.

◆ r_osz

#define r_osz   _r_osz(lidx)

Definition at line 63 of file Mlp.cl.c.

◆ r_osz_then

#define r_osz_then   _r_osz(lidx-1)

Definition at line 71 of file Mlp.cl.c.

◆ r_out

#define r_out   _r_out(lidx)

Definition at line 58 of file Mlp.cl.c.

◆ r_out_then

#define r_out_then   _r_out(lidx-1)

Definition at line 66 of file Mlp.cl.c.

◆ r_weight

#define r_weight   _r_weight(lidx)

Definition at line 59 of file Mlp.cl.c.

◆ r_weight_then

#define r_weight_then   _r_weight(lidx-1)

Definition at line 67 of file Mlp.cl.c.

Typedef Documentation

◆ STATIC_ASSERT_LRLSZ_SZ

typedef char STATIC_ASSERT_LRLSZ_SZ[sizeof(lrlsz_t)== sizeof(lrlszel_t) *3 ? 1 :-1]

Definition at line 157 of file Mlp.cl.c.

◆ STATIC_ASSERT_LRLSZEL_SZ

typedef char STATIC_ASSERT_LRLSZEL_SZ[sizeof(lrlszel_t)==(sizeof(uint32_t) > sizeof(ae2f_float_t) ? sizeof(uint32_t) :sizeof(ae2f_float_t)) ? 1 :-1]

Definition at line 152 of file Mlp.cl.c.

Function Documentation

◆ ae2f_structdef() [1/2]

const ae2f_structdef ( struct ,
lrlsz_t  )

Definition at line 147 of file Mlp.cl.c.

◆ ae2f_structdef() [2/2]

ae2f_structdef ( union ,
lrlszel_t  )

Definition at line 142 of file Mlp.cl.c.

◆ kFollow()

__kernel void kFollow ( __global void * glob,
__local ae2f_float_t * loc,
lrlsz_t lr )

loc ae2f_float_t[lsz - 1][Page]: OutStream ae2f_float_t[lsz - 1][Page]: DeltaStream

ASSERT

Needs to be procedural

Needs to be procedural

Definition at line 166 of file Mlp.cl.c.

◆ kPredict()

__kernel void kPredict ( __global void * glob,
__local ae2f_float_t * loc,
const uint32_t lsz )

loc ae2f_float_t[Page]: inp ae2f_float_t[Page]: out

Definition at line 93 of file Mlp.cl.c.

◆ kPredictStream()

__kernel void kPredictStream ( __global void * glob,
__local ae2f_float_t * loc,
const uint32_t lsz )

loc ae2f_float_t[Page]: inp ae2f_float_t[Page]: out

Definition at line 118 of file Mlp.cl.c.

◆ kTrainAuto()

__kernel void kTrainAuto ( __global void * glob,
__local ae2f_float_t * loc,
lrlsz_t lr )

loc ae2f_float_t[lsz - 1][Page]: OutStream ae2f_float_t[lsz - 1][Page]: DeltaStream

ASSERT

lidx == llsz - 1

lidx == llsz

lidx == llsz - 1

Needs to be procedural

lidx == 0

Definition at line 290 of file Mlp.cl.c.