debug all leak mem with valgrind in ftest and tensor rep

This commit is contained in:
2024-02-08 23:57:10 +01:00
parent 6ae0f7cd75
commit e1171d720b
32 changed files with 1468 additions and 405 deletions
+60 -21
View File
@@ -1,36 +1,75 @@
__kernel void prodContractnTensorLin_TYPE_FLOAT(long unsigned int dSubRank, long unsigned int dMRank, __global const float *M0x , __global const float *M1x, __global float *Mx ){
__kernel void prodContractnTensor2dLin_TYPE_FLOAT(long unsigned int dSubRank, long unsigned int dMRank, __global const float *M0x , __global const float *M1x, __global float *Mx ){
//Get the index of the current element to be processed
size_t i = get_global_id(0);
size_t k, a0_id, a1_id, n0_id, n1_id;
a0_id = i / dSubRank;
a1_id = i % dSubRank;
Mx[i] = 0;
//size_t i = get_global_id(0);
//size_t j = get_global_id(1);
size_t i = get_group_id(0)*get_local_size(0) + get_local_id(0);
size_t j = get_group_id(1)*get_local_size(1) + get_local_id(1);
size_t k, n0_id, n1_id;
size_t ind = i * dSubRank + j;
Mx[ind] = 0;
for (k = 0; k < dMRank; k++) {
n0_id = a0_id * dMRank + k;
n1_id = a1_id + dSubRank * k;
Mx[i] += M0x[n0_id] * M1x[n1_id];
n0_id = i * dMRank + k;
n1_id = j + dSubRank * k;
Mx[ind] += M0x[n0_id] * M1x[n1_id];
}
}
__kernel void prodContractnTensorLin_TYPE_DOUBLE(long unsigned int dSubRank, long unsigned int dMRank, __global const double *M0x , __global const double *M1x, __global double *Mx ){
__kernel void prodContractnTensor2dLin_TYPE_DOUBLE(long unsigned int dSubRank, long unsigned int dMRank, __global const double *M0x , __global const double *M1x, __global double *Mx ){
//Get the index of the current element to be processed
size_t i = get_global_id(0);
size_t k, a0_id, a1_id, n0_id, n1_id;
a0_id = i / dSubRank;
a1_id = i % dSubRank;
Mx[i] = 0;
//size_t i = get_global_id(0);
//size_t j = get_global_id(1);
size_t i = get_group_id(0)*get_local_size(0) + get_local_id(0);
size_t j = get_group_id(1)*get_local_size(1) + get_local_id(1);
size_t k, n0_id, n1_id;
size_t ind = i * dSubRank + j;
Mx[ind] = 0;
for (k = 0; k < dMRank; k++) {
n0_id = a0_id * dMRank + k;
n1_id = a1_id + dSubRank * k;
Mx[i] += M0x[n0_id] * M1x[n1_id];
n0_id = i * dMRank + k;
n1_id = j + dSubRank * k;
Mx[ind] += M0x[n0_id] * M1x[n1_id];
}
}
__kernel void prodContractnTensor2dLiniNotEndian_TYPE_FLOAT(long unsigned int dSubRank, long unsigned int dMRank, __global const float *M0x , __global const float *M1x, __global float *Mx ){
//Get the index of the current element to be processed
//size_t i = get_global_id(0);
//size_t j = get_global_id(1);
size_t i = get_group_id(0)*get_local_size(0) + get_local_id(0);
size_t j = get_group_id(1)*get_local_size(1) + get_local_id(1);
size_t k, n0_id, n1_id;
size_t ind = i + dSubRank * j;
Mx[ind] = 0;
for (k = 0; k < dMRank; k++) {
n0_id = i + dMRank * k;
n1_id = j * dSubRank + k;
Mx[ind] += M0x[n0_id] * M1x[n1_id];
}
}
__kernel void prodContractnTensor2dLinNotEndian_TYPE_DOUBLE(long unsigned int dSubRank, long unsigned int dMRank, __global const double *M0x , __global const double *M1x, __global double *Mx ){
//Get the index of the current element to be processed
//size_t i = get_global_id(0);
//size_t j = get_global_id(1);
size_t i = get_group_id(0)*get_local_size(0) + get_local_id(0);
size_t j = get_group_id(1)*get_local_size(1) + get_local_id(1);
size_t k, n0_id, n1_id;
size_t ind = i + dSubRank * j;
Mx[ind] = 0;
for (k = 0; k < dMRank; k++) {
n0_id = i + dMRank * k;
n1_id = j * dSubRank + k;
Mx[ind] += M0x[n0_id] * M1x[n1_id];
}
}