debug -Werr and creake Makefile to build libneurons.so

This commit is contained in:
2024-03-26 14:27:33 +01:00
parent 3911456abc
commit 9244239f46
6 changed files with 97 additions and 55 deletions
+1 -1
View File
@@ -212,7 +212,7 @@ void printDebug_dimension(dimension *d,char *msg){
printf("(%s)->size = %ld | (%s)->rank = %ld \n[",msg,d->size,msg,d->rank);
for(size_t i=0; i<d->size; ++i)
printf(" %ld,", d->perm[i]);
printf("] \n");
printf("] \n");
//printf("[%ld: %ld] |", i,d->perm[i]);
/* if(endian)
printf("\nendian (true): the bigest index varies first, e.g: [x0,x1,x2,...,xn] xn is the bigest index\n");
@@ -5,7 +5,6 @@
extern bool endian;
bool isLessEqThan(long int a, long int b) ;
bool isLessThan(long int a, long int b) ;
bool isGreatEqThan(long int a, long int b) ;
+73 -41
View File
@@ -1,64 +1,92 @@
# lib: -lneurons
PROJECT_LIB=libneurons.so
CC=gcc
TOOLDIR=$(PWD)/../ytools_t
PERMDIR=$(PWD)/../ypermutation_t
ROOT_DIR=$(PWD)
YTESTDIR=$(PWD)/../ytest_t
YPERMDIR=$(PWD)/../ypermutation_t
DIMDIR=$(PWD)/../dimension_t
TENSDIR=$(PWD)/../tensor_t
INCLUDE_NEURO=$(PWD)/src
INCLUDE_TENS=$(TENSDIR)/src
INCLUDE_PERMDIR=$(PERMDIR)/src
INCLUDE_DIMDIR=$(DIMDIR)/src
INCLUDE_TOOLDIR=$(TOOLDIR)/include
CFLAGS=-I$(INCLUDE_TOOLDIR) -I$(INCLUDE_PERMDIR) -I$(INCLUDE_DIMDIR) -I$(INCLUDE_TENS) -I$(INCLUDE_NEURO) -lpthread
NEURODIR=$(PWD)
DIMDIR=$(PWD)/../dimension_t
INCLUDE_DIR=$(PWD)/sr
#CFLAGS=-I$(INCLUDE_DIR) -I$(YPERMDIR)/src -I$(YTESTDIR)/include_ytest/include -I$(DIMDIR)/src -I$(TENSDIR)/src #"-D DEBUG=1"
INCLUDE=-I$(NEURODIR)/src -I$(YPERMDIR)/src -I$(DIMDIR)/src -I$(TENSDIR)/src #"-D DEBUG=1"
#LDFLAGS=-L$(YTESTDIR) -lytest -lOpenCL -lm -lpthread
#CFLAGS= -Wall -Werror -fpic $(INCLUDE)
CFLAGS= -Wall -Werror -fpic $(INCLUDE)
LDFLAGS= -lOpenCL -lpthread
#SRC_DIR=$(ROOT_DIR)/src
#SRC=$(wildcard */*/*.c)
SRC=$(wildcard **/**/*.c)
#HEADS=$(OBJS:.o=.h)
TEST_DIR=$(PWD)
EXECSRC=$(NAME_TEST).c
#EXECSRC=openF.c
EXEC=launch_$(NAME_TEST)_m
NEUROSRC=$(NEURODIR)/src/neuron_t/neuron_t.c
NEUROSRC_O=$(NEUROSRC:.c=.o)
INCLUDE_HEADERS_NEURONS=$(NEURODIR)/include_neurons/include
TENSRC=$(TENSDIR)/src/tensor_t/tensor_t.c
TENSRC_O=$(TENSRC:.c=.o)
PERMSRC_O=$(YPERMDIR)/src/permutation_t/permutation_t.o
DIMSRC_O=$(DIMDIR)/src/dimension_t/dimension_t.o
NEUROSRC=src/neuron_t/neuron_t.c
NEUROSRC_O=$(NEUROSRC:.c=.o)
TOPTARGETS := all clean
TENSRC=$(TENSDIR)src/tensor_t/tensor_t.c
TENSRC_O=$(TENSRC:.c=.o)
#DEPS=$(DIMDIR) $(YPERMDIR) $(YTESTDIR) $(TENSDIR) $(NEURODIR)
DEPS=$(DIMDIR) $(YPERMDIR) $(TENSDIR) $(NEURODIR)
clTENSRC=$(TENSDIR)/src/tensor_t/cl_tensor_t.c
clTENSRC_O=$(clTENSRC:.c=.o)
OBJ=$(DIMSRC_O) $(PERMSRC_O) $(TENSRC_O) $(NEUROSRC_O)
PERMSRC_O=$(PERMDIR)/src/permutation_t/permutation_t.o
#LIB_YTEST=$(YTESTDIR)/libytest.so
#TOOLSRC_O=$(TOOLDIR)/src/tools_t/tools_t.o
$(TOPTARGETS): $(DEPS)
all: $(PROJECT_LIB) update_headers
$(PROJECT_LIB): $(OBJ)
echo $(OBJ)
#$(CC) -shared -o $@ $^ $(INCLUDE) $(LDFLAGS)
#$(CC) -shared -o $@ $^ $(LDFLAGS)
#$(CC) -shared -o $@ $^ $(CFLAGS)
$(CC) -shared -o $@ $^ $(CFLAGS) $(LDFLAGS)
$(DEPS):
$(MAKE) -C $@ $(MAKECMDGOALS)
update_headers: $(PROJECT_LIB)
for file_h in $(DEPS); do
cd ${file_h}/src
#cp --parents "$$file_h/include/" include_neurons/; done
cp --parents "*/*.h" "$(INCLUDE_HEADERS_NEURONS)/" ;
done
#PERMSRC_O=$(PERMSRC:.c=.o)
#SETTSRC_O=$(PWD)/../src/set_theoric_t/set_theoric_t.o
#SETTSRC_O=$(SETTSRC:.c=.o)
#TOOLSRC=$(TOOLDIR)/src/tools_t/tools_t.c
#TOOLSRC_O=$(TOOLSRC:.c=.o)
#SRC=$(wildcard **/**/*.c)
#OBJ=$(SRC:.c=.o) #$(TOOLSRC_O)
OBJ=$(NEUROSRC_O)
TOPTARGETS := all clean
DEP=$(DIMDIR) $(PERMDIR) $(TENSDIR)
$(TOPTARGETS): $(DEP)
all: $(NEUROSRC_O)
$(NEUROSRC_O) : $(NEUROSRC) $(TENSRC_0) $(DIMSRC_O) $(PERMSRC_O)
$(CC) -o $@ -c $^ $(CFLAGS)
#$(DIMSRC_O) : $(DIMSRC) $(PERMSRC_O)
# $(CC) -o $@ -c $< $(CFLAGS)
$(DEP):
$(MAKE) -C $@ $(MAKECMDGOALS)
#$(TOOLSRC_O): $(TOOLSRC)
# $(CC) -o $@ -c $< $(CFLAGS)
#$(EXEC): $(EXECSRC) $(OBJ)
# $(CC) -o $@ $^ $(CFLAGS) $(LDFLAGS)
.PHONY: clean mrproper
@@ -66,7 +94,11 @@ clean:
rm -f $(OBJ)
mrproper: clean
rm -f $(EXEC)
rm -f $(PROJECT_LIB)
run: $(EXEC)
$(EXEC) -h
remove_headers:
rm -r $(INCLUDE_HEADERS_NEURONS)/*
#run: $(EXEC)
# $(EXEC) -h
+1
View File
@@ -893,6 +893,7 @@ void* run_learnCloneuronset_thread_##type(void *arg){\
sem_post(semaphore_learn);\
}\
sem_post(semaphore_learn);\
return 0;\
}\
\
size_t learning_cloneuronset_##type(cloneuronset_##type *clnrnst, data_set_##type *dataset, bool (*condition)(type, size_t)){\
+20 -10
View File
@@ -353,14 +353,14 @@ tensor_##type* CLONE_TENSOR_##type(tensor_##type *tens){\
}\
\
void print_tensor_msg_##type(tensor_##type *T,char *msg) {\
size_t j=0,k=0;\
long int *coord = malloc(sizeof(long int)*(T->dim)->size); \
/*size_t j=0 ,k=0*/;\
size_t *coord = malloc(sizeof(long int)*(T->dim)->size); \
char *val=NULL;\
char *dimsg=malloc(512);\
sprintf(dimsg,"(%s)->dim",msg);\
printDebug_dimension(T->dim,dimsg);\
printf("%s\n",msg);\
long int begin , end, beginIter, endIter ;\
long int begin , end /*, beginIter , endIter*/ ;\
long int (*iter)(long int) ;\
bool (*cond)(long int, long int) ; \
if (endian ) {\
@@ -404,15 +404,15 @@ void print_tensor_msg_##type(tensor_##type *T,char *msg) {\
\
\
void fprint_tensor_##type(char *file_name, tensor_##type *T) {\
size_t j=0,k=0;\
long int *coord = malloc(sizeof(long int)*(T->dim)->size); \
/*size_t j=0,k=0;*/\
size_t *coord = malloc(sizeof(long int)*(T->dim)->size); \
char *val=NULL;\
FILE *fileWrite = fopen(file_name, "w");\
if(fileWrite == NULL) {\
printf("error while opening %s\n",file_name);\
exit(1);\
}\
long int begin , end, beginIter, endIter ;\
long int begin , end /*, beginIter, endIter*/ ;\
long int (*iter)(long int) ;\
bool (*cond)(long int, long int) ; \
if (endian ) {\
@@ -427,7 +427,7 @@ void fprint_tensor_##type(char *file_name, tensor_##type *T) {\
fprintf(fileWrite,"[");\
for(size_t i=0; i<(T->dim)->size; ++i)\
fprintf(fileWrite," %ld,", (T->dim)->perm[i]);\
fprintf(fileWrite,"] \n");\
fprintf(fileWrite,"] \n");\
\
for(long int i=0;i<(T->dim)->rank;++i){\
vCoordFromLin(coord,i,T->dim);\
@@ -468,9 +468,9 @@ size_t sprint_tensor_##type(char **tensorContent,tensor_##type *T, bool withInde
/*printf("malloc %ld char\n",sz);*/\
*tensorContent = malloc(sz ) ;\
size_t cur=0;\
long int *coord = malloc(sizeof(long int)*(T->dim)->size); \
size_t *coord = malloc(sizeof(long int)*(T->dim)->size); \
char *val=NULL;\
long int begin , end, beginIter, endIter ;\
long int begin , end /*, beginIter, endIter*/ ;\
long int (*iter)(long int) ;\
bool (*cond)(long int, long int) ; \
if (endian ) {\
@@ -705,6 +705,7 @@ void* runProd_thread_##type(void *arg){\
}\
arg_t->Mx[i] = arg_t->M0x[a0_id] * arg_t->M1x[a1_id];\
}\
return 0;\
}\
\
void tensorProdThread_##type(tensor_##type **MM, tensor_##type *M0, tensor_##type *M1, size_t nbthread) { \
@@ -767,6 +768,7 @@ void* runProd_thread2d_##type(void *arg){\
arg_t->Mx[k] = arg_t->M0x[i] * arg_t->M1x[j];\
}\
}\
return 0;\
}\
\
void tensorProdThrea2d_##type(tensor_##type **MM, tensor_##type *M0, tensor_##type *M1, size_t nbthread) { \
@@ -836,6 +838,7 @@ void* runProdContract_thread_##type(void *arg){\
arg_t->Mx[i] += arg_t->M0x[n0_id] * arg_t->M1x[n1_id];\
}\
}\
return 0;\
}\
/* M[x0,x1,x3..xn] X M[y0,y1,y3..ym] = M[z0,z1...zp] (deep = l > 0) /exists 1<= l<...<l=n / xl = y0,x{l+1}=y1, x{n}=yl et zi=xi i<n-l et zj=y{j-(n-l)} j>=n-l alor p=n+m-2l\
M[x0,x1,x3..xl x{l+1}...xn] X M[xn,x{n-1},x{n-2}...xl y{l+1} ..ym] = M[x0,x1..xly{l+1}...y{n+m-2l}] (deep = l > 0)\
@@ -933,6 +936,7 @@ void* runPro2dContract_thread_##type(void *arg){\
}\
}\
}\
return 0;\
}\
/* M[x0,x1,x3..xn] X M[y0,y1,y3..ym] = M[z0,z1...zp] (deep = l > 0) /exists 1<= l<...<l=n / xl = y0,x{l+1}=y1, x{n}=yl et zi=xi i<n-l et zj=y{j-(n-l)} j>=n-l alor p=n+m-2l\
M[x0,x1,x3..xl x{l+1}...xn] X M[xn,x{n-1},x{n-2}...xl y{l+1} ..ym] = M[x0,x1..xly{l+1}...y{n+m-2l}] (deep = l > 0)\
@@ -1246,7 +1250,7 @@ void parseInputOutput_withDim_to_tensors_##type(tensor_##type **Tpart1, tensor_#
updateRankDim(ddim2);\
array_chainlist_##type *l_a1=NULL;\
array_chainlist_##type *l_a2=NULL;\
size_t i1=0,i=0,j=0,i2=0;\
size_t i1=0, /*i=0,j=0, */ i2=0;\
bool filled1=false,filled2=false;\
type x;\
while(ppEnd && (ppEnd[0] !='\0')){\
@@ -1616,6 +1620,7 @@ void* run1UpdatCalcfunc_thread_##type(void *arg){\
for (size_t i = arg_t->beginRange; i < arg_t->endRange; i++) {\
arg_t->M0x[i] = arg_t->func(arg_t->M0x[i]);\
}\
return 0;\
}\
\
void update_1tensor_func_##type(tensor_##type *M0, type (*func)(type), size_t nbthread){\
@@ -1654,6 +1659,7 @@ void* run2UpdatCalcfunc_thread_##type(void *arg){\
for (size_t i = arg_t->beginRange; i < arg_t->endRange; i++) {\
arg_t->M0x[i] = arg_t->func(arg_t->M1x[i]);\
}\
return 0;\
}\
\
void update_2tensor_func_##type(tensor_##type *M0, tensor_##type *M1, type (*func)(type), size_t nbthread){\
@@ -1695,6 +1701,7 @@ void* run3UpdatCalcfunc_thread_##type(void *arg){\
for (size_t i = arg_t->beginRange; i < arg_t->endRange; i++) {\
arg_t->M0x[i] = arg_t->func(arg_t->M1x[i], arg_t->M2x[i]);\
}\
return 0;\
}\
\
void update_3tensor_func_##type(tensor_##type *M0, tensor_##type *M1, tensor_##type *M2, type (*func)(type,type), size_t nbthread){\
@@ -1739,6 +1746,7 @@ void* run4UpdatCalcfunc_thread_##type(void *arg){\
for (size_t i = arg_t->beginRange; i < arg_t->endRange; i++) {\
arg_t->M0x[i] = arg_t->func(arg_t->M1x[i], arg_t->M2x[i], arg_t->f1);\
}\
return 0;\
}\
\
void update_4tensor_func_##type(tensor_##type *M0, tensor_##type *M1, tensor_##type *M2, \
@@ -1793,6 +1801,7 @@ void* run5UpdatCalcfunc_thread_##type(void *arg){\
for (size_t i = arg_t->beginRange; i < arg_t->endRange; i++) {\
arg_t->M0x[i] = arg_t->func(arg_t->M1x[i], arg_t->M2x[i], arg_t->M3x[i], arg_t->f1, arg_t->f2);\
}\
return 0;\
}\
\
void update_5tensor_func_##type(tensor_##type *M0, tensor_##type *M1, tensor_##type *M2, tensor_##type *M3 , \
@@ -1843,6 +1852,7 @@ void* run6UpdatCalcfunc_thread_##type(void *arg){\
for (size_t i = arg_t->beginRange; i < arg_t->endRange; i++) {\
arg_t->M0x[i] = arg_t->func(arg_t->M0x[i], arg_t->M1x[i], arg_t->scalar);\
}\
return 0;\
}\
\
void update_6tensor_func_##type(tensor_##type *M0, tensor_##type *M1, \
@@ -173,7 +173,7 @@ size_t TabToPlaceNotab_##type(const PERMUTATION_##type *p){\
size_t sz = p->size;\
PERMUTATION_TYPE_SIZE_T *t_p = TRANSLATE_TO_SET_THEORIC_SIZE_T_##type(p);\
size_t *tb= t_p->perm;\
size_t mx = sz - 1;\
/*size_t mx = sz - 1;*/\
size_t q = 0;\
size_t pl;\
for (long int i = 0; i < sz; i++) {\
@@ -199,7 +199,7 @@ PERMUTATION_TYPE_SIZE_T * PlaceToTab_##type(PERMUTATION_##type *p, size_t pl){\
/*PERMUTATION_TYPE_SIZE_T *t_p = CREATE_PERMUTATION_TYPE_SIZE_T(sz);*/\
PERMUTATION_TYPE_SIZE_T *t_p = TRANSLATE_TO_SET_THEORIC_SIZE_T_##type(p);\
type *save_perm = malloc(sz*sizeof(type));\
long int *tb= t_p->perm;\
size_t *tb= t_p->perm;\
size_t a = pl;\
size_t pltbi;\
for (long int i = 0;i < sz;i++) {\