kernels.elementwise_template.cl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of neureka Show documentation
Show all versions of neureka Show documentation
A platform independent tensor library written in Java.
The newest version!
/*
The kernel defined in this file takes a pair of tensors
and combines them element wise to produce an output tensor.
The kernel is mostly used for operators like "+", "-", "*", "/" ...
*/
//======================================================================================================================
// These are from the "utility.cl" file! The methods convert types of indices...
void _cfg_of_cfg(__global int* cfg, int* prv_cfg, int rank);
int _i_of_i(int i, int* cfg, int rank);
//======================================================================================================================
__kernel void elementwise_template(
__global float *drn, __global int *drn_conf,
__global float *src1, __global int *src1_conf,
__global float *src2, __global int *src2_conf,
int rank,
int d
){
int prv_drn_cfg[32];
_cfg_of_cfg(drn_conf, prv_drn_cfg, rank);
int prv_src1_cfg[32];
_cfg_of_cfg(src1_conf, prv_src1_cfg, rank);
int prv_src2_cfg[32];
_cfg_of_cfg(src2_conf, prv_src2_cfg, rank);
unsigned int i = get_global_id( 0 );
if ( d < 0 ) {
//-==-//
drn[_i_of_i(i, prv_drn_cfg, rank)] = src1[_i_of_i(i, prv_src1_cfg, rank)] + src2[_i_of_i(i, prv_src2_cfg, rank)];
//-==-//
} else {
//-==-//
drn[_i_of_i(i, prv_drn_cfg, rank)] = 1;
//-==-//
}
}
//======================================================================================================================
© 2015 - 2025 Weber Informatics LLC | Privacy Policy