From 2746ab17eefb9e276de9c865c82bf600b0703020 Mon Sep 17 00:00:00 2001 From: miha-q <> Date: Mon, 18 Mar 2024 20:39:22 -0400 Subject: [PATCH] Mon Mar 18 08:39:22 PM EDT 2024 --- build.sh | 4 ++-- src/complex.c | 14 ++++++++++++++ src/hardware.c | 4 ++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/build.sh b/build.sh index 6777592..c01195e 100644 --- a/build.sh +++ b/build.sh @@ -25,9 +25,9 @@ then fi if [ "$1" = "simple" ] then - bcmd="gcc src/main.c -g -o bin/QAnsel -lm$x86 -D_REENTRANT -pthread" + bcmd="gcc src/main.c -g -o bin/QAnsel -lm$x86" else - bcmd="gcc src/main.c -g -o bin/QAnsel -lm$x86 -D__SDL2__ -D__OPENCL__ -I/usr/include/SDL2 -D_REENTRANT -lSDL2 -lOpenCL -pthread" + bcmd="gcc src/main.c -g -o bin/QAnsel -lm$x86 -D__PTHREAD__ -D__SDL2__ -D__OPENCL__ -I/usr/include/SDL2 -D_REENTRANT -lSDL2 -lOpenCL -pthread" fi echo "$bcmd" $($bcmd) diff --git a/src/complex.c b/src/complex.c index 649823b..6abeeb5 100644 --- a/src/complex.c +++ b/src/complex.c @@ -209,6 +209,7 @@ void* cpx_mtx_knk_threads_run(void *context) void cpx_mtx_knk_threads(float* ptrR, float* ptrA, float* ptrB, int rowsA, int colsA, int rowsB, int colsB) { + #ifdef __PTHREAD__ int delimeter = rowsA * rowsB; int cores = qansel_get_core_count(); int threadCount = cores; @@ -244,6 +245,9 @@ void cpx_mtx_knk_threads(float* ptrR, float* ptrA, float* ptrB, int rowsA, int c fprintf(stderr, "QAnsel: Thread error. (2)\n"); } } + #else + cpx_mtx_knk_threads(ptrR, ptrA, ptrB, rowsA, colsA, rowsB, colsB); + #endif } void* cpx_mtx_knk_threads_2x2_run(void *context) @@ -274,6 +278,7 @@ void* cpx_mtx_knk_threads_2x2_run(void *context) void cpx_mtx_knk_threads_2x2(float* ptrR, float* ptrA, float* ptrB, int rowsA, int colsA, int rowsB, int colsB) { + #ifdef __PTHREAD__ int delimeter = (rowsA * rowsB) / 2; int cores = qansel_get_core_count(); int threadCount = cores; @@ -309,6 +314,10 @@ void cpx_mtx_knk_threads_2x2(float* ptrR, float* ptrA, float* ptrB, int rowsA, i fprintf(stderr, "QAnsel: Thread error. (2)\n"); } } + #else + cpx_mtx_knk_threads_2x2(ptrR, ptrA, ptrB, rowsA, colsA, rowsB, colsB); + #endif + } void* cpx_mtx_dot_threads_run(void *context) @@ -325,6 +334,7 @@ void* cpx_mtx_dot_threads_run(void *context) void cpx_mtx_dot_threads(float* ptrR, float* ptrA, float* ptrB, int rowsA, int colsA, int rowsB, int colsB) { + #ifdef __PTHREAD__ int delimeter = colsB; int cores = qansel_get_core_count(); int threadCount = cores; @@ -359,7 +369,11 @@ void cpx_mtx_dot_threads(float* ptrR, float* ptrA, float* ptrB, int rowsA, int c fprintf(stderr, "QAnsel: Thread error. (2)\n"); } } + #else + cpx_mtx_dot_threads(ptrR, ptrA, ptrB, rowsA, colsA, rowsB, colsB); + #endif } + /*-----------------------------------------------------------------------------------*/ /*METAL*/ /*-----------------------------------------------------------------------------------*/ diff --git a/src/hardware.c b/src/hardware.c index baaf580..130d87e 100644 --- a/src/hardware.c +++ b/src/hardware.c @@ -30,6 +30,7 @@ int qansel___get_core_count() int qansel_get_core_count() { + #ifdef __PTHREAD__ static int coreCount = -1; if (coreCount == -1) { @@ -40,6 +41,9 @@ int qansel_get_core_count() } } return coreCount; + #else + return 1; + #endif } unsigned long int qansel_get_time() -- 2.39.5