#include "display.c"
#include "chacha20.c"
#define QUBITS_MAX 14
+//#define SPEED_TEST
unsigned char HIDDEN_VARIABLE = 0;
FILE* RANDOM_FILE;
#define GPU_ENABLED
tmp.cols = filter.cols * gate.cols;
tmp.ptr = malloc(tmp.rows * (tmp.cols * 2) * sizeof(float));
-
+ #ifdef SPEED_TEST
printf("%ix%i (knk)\n", tmp.rows, tmp.cols);
unsigned long int us1, us2;
us1 = get_time();
cpx_mtx_knk(tmp.ptr, filter.ptr, gate.ptr, filter.rows, filter.cols, gate.rows, gate.cols);
us2 = get_time();
printf("\tBare: %lu\n", us2 - us1);
-
-// if (USE_GPU && 0)
-// {
-// cpx_mtx_knk_metal(tmp.ptr, filter.ptr, gate.ptr, filter.rows, filter.cols, gate.rows, gate.cols);
-// }
-// else if (USE_THREADS)
-// {
-// cpx_mtx_knk_threads(tmp.ptr, filter.ptr, gate.ptr, filter.rows, filter.cols, gate.rows, gate.cols);
-// }
-// else
-// {
-// cpx_mtx_knk(tmp.ptr, filter.ptr, gate.ptr, filter.rows, filter.cols, gate.rows, gate.cols);
-// }
+ #else
+ if (USE_GPU && 0)
+ {
+ cpx_mtx_knk_metal(tmp.ptr, filter.ptr, gate.ptr, filter.rows, filter.cols, gate.rows, gate.cols);
+ }
+ else if (USE_THREADS)
+ {
+ cpx_mtx_knk_threads(tmp.ptr, filter.ptr, gate.ptr, filter.rows, filter.cols, gate.rows, gate.cols);
+ }
+ else
+ {
+ cpx_mtx_knk(tmp.ptr, filter.ptr, gate.ptr, filter.rows, filter.cols, gate.rows, gate.cols);
+ }
+ #endif
free(filter.ptr);
cpx_mtx_init(&tmp, stateVector->rows, stateVector->cols);
+ #ifdef SPEED_TEST
printf("%ix%i (dot)\n", tmp.rows, tmp.cols);
unsigned long int us1, us2;
us1 = get_time();
cpx_mtx_dot(tmp.ptr, stateVector->ptr, filter.ptr, stateVector->rows, stateVector->cols, filter.rows, filter.cols);
us2 = get_time();
printf("\tBare: %lu\n", us2 - us1);
-
-
- //if (USE_GPU)
- //{
- //
- // cpx_mtx_dot_metal(tmp.ptr, stateVector->ptr, filter.ptr, stateVector->rows, stateVector->cols, filter.rows, filter.cols);
- //}
- //else if (USE_THREADS)
- //{
- // cpx_mtx_dot_threads(tmp.ptr, stateVector->ptr, filter.ptr, stateVector->rows, stateVector->cols, filter.rows, filter.cols);
- //}
- //else
- //{
- // cpx_mtx_dot(tmp.ptr, stateVector->ptr, filter.ptr, stateVector->rows, stateVector->cols, filter.rows, filter.cols);
- //}
+ #else
+ if (USE_GPU)
+ {
+
+ cpx_mtx_dot_metal(tmp.ptr, stateVector->ptr, filter.ptr, stateVector->rows, stateVector->cols, filter.rows, filter.cols);
+ }
+ else if (USE_THREADS)
+ {
+ cpx_mtx_dot_threads(tmp.ptr, stateVector->ptr, filter.ptr, stateVector->rows, stateVector->cols, filter.rows, filter.cols);
+ }
+ else
+ {
+ cpx_mtx_dot(tmp.ptr, stateVector->ptr, filter.ptr, stateVector->rows, stateVector->cols, filter.rows, filter.cols);
+ }
+ #endif
free(stateVector->ptr);
stateVector->ptr = tmp.ptr;
free(filter.ptr);