Working to make OpenCL recognize the limitations of the device its on, as well as reusing the OpenCL kernel/context for multiple runs.

Signed-off-by: gothictomato <gothictomato@pm.me>
This commit is contained in:
gothictomato
2022-08-27 09:11:29 -04:00
parent 84374e23fd
commit e2b633c802
5 changed files with 424 additions and 16 deletions

View File

@@ -24,6 +24,7 @@ i32 runTests() {
i32 runuf20() {
gpusolver* gs = initSolver();
// printf("Running against uf20\n");
u32 passed = 0;
u64 tottime = 0;
@@ -36,7 +37,7 @@ i32 runuf20() {
sortlastnum(c);
u64 start = utime();
i32 res = gpusolve(c);
i32 res = gpusolve2(gs, c);
u64 stop = utime();
tottime += (stop - start);
@@ -46,10 +47,12 @@ i32 runuf20() {
// printf("Passed %u / 1000 tests\n", passed);
// printf("Took %lf s total, %lf s on avg\n", ((f64) tottime) / 1000000.0, ((f64) tottime) / 1000000000.0);
if (passed == 1000) return 0;
freeSolver(gs);
return 1;
}
i32 runuf50() {
gpusolver* gs = initSolver();
// printf("Running against uf50\n");
u32 passed = 0;
u64 tottime = 0;
@@ -62,7 +65,7 @@ i32 runuf50() {
sortlastnum(c);
u64 start = utime();
i32 res = gpusolve(c);
i32 res = gpusolve2(gs, c);
u64 stop = utime();
tottime += (stop - start);
@@ -72,10 +75,12 @@ i32 runuf50() {
// printf("Passed %u / 1000 tests\n", passed);
// printf("Took %lf s total, %lf s on avg\n", ((f64) tottime) / 1000000.0, ((f64) tottime) / 1000000000.0);
if (passed == 1000) return 0;
freeSolver(gs);
return 1;
}
i32 runuuf50() {
gpusolver* gs = initSolver();
// printf("Running against uuf50\n");
u32 passed = 0;
u64 tottime = 0;
@@ -88,7 +93,7 @@ i32 runuuf50() {
sortlastnum(c);
u64 start = utime();
i32 res = gpusolve(c);
i32 res = gpusolve2(gs, c);
u64 stop = utime();
tottime += (stop - start);
@@ -98,5 +103,6 @@ i32 runuuf50() {
// printf("Passed %u / 1000 tests\n", passed);
// printf("Took %lf s total, %lf s on avg\n", ((f64) tottime) / 1000000.0, ((f64) tottime) / 1000000000.0);
if (passed == 1000) return 0;
freeSolver(gs);
return 1;
}