int main (void) { FILE *source_file; char *source; int source_size; cl_float4 *srcA, *srcB; cl_float *dst; int i; source_file = fopen("example1.spir", "r"); if (source_file == NULL) source_file = fopen (SRCDIR "/example1.spir", "r"); assert(source_file != NULL && SRCDIR "example1.spir not found!!"); fseek (source_file, 0, SEEK_END); source_size = ftell (source_file); fseek (source_file, 0, SEEK_SET); source = (char *) malloc (source_size +1 ); assert (source != NULL); fread (source, source_size, 1, source_file); fclose (source_file); srcA = (cl_float4 *) malloc (N * sizeof (cl_float4)); srcB = (cl_float4 *) malloc (N * sizeof (cl_float4)); dst = (cl_float *) malloc (N * sizeof (cl_float)); for (i = 0; i < N; ++i) { srcA[i].s[0] = (cl_float)i; srcA[i].s[1] = (cl_float)i; srcA[i].s[2] = (cl_float)i; srcA[i].s[3] = (cl_float)i; srcB[i].s[0] = (cl_float)i; srcB[i].s[1] = (cl_float)i; srcB[i].s[2] = (cl_float)i; srcB[i].s[3] = (cl_float)i; } if (exec_dot_product_kernel (source, source_size, N, srcA, srcB, dst)) { printf ("Error running the tests\n"); return -1; } for (i = 0; i < 4; ++i) { printf ("(%f, %f, %f, %f) . (%f, %f, %f, %f) = %f\n", srcA[i].s[0], srcA[i].s[1], srcA[i].s[2], srcA[i].s[3], srcB[i].s[0], srcB[i].s[1], srcB[i].s[2], srcB[i].s[3], dst[i]); if (srcA[i].s[0] * srcB[i].s[0] + srcA[i].s[1] * srcB[i].s[1] + srcA[i].s[2] * srcB[i].s[2] + srcA[i].s[3] * srcB[i].s[3] != dst[i]) { printf ("FAIL\n"); return -1; } } printf ("OK\n"); return 0; }
int main (void) { FILE *source_file; char *source; int source_size; cl_float4 *srcA, *srcB; cl_float *dst; int ierr; int i; source_file = fopen("example1.cl", "r"); if (source_file == NULL) source_file = fopen (SRCDIR "/example1.cl", "r"); assert(source_file != NULL && "example1.cl not found!"); fseek (source_file, 0, SEEK_END); source_size = ftell (source_file); fseek (source_file, 0, SEEK_SET); source = (char *) malloc (source_size +1 ); assert (source != NULL); fread (source, source_size, 1, source_file); source[source_size] = '\0'; fclose (source_file); srcA = (cl_float4 *) malloc (N * sizeof (cl_float4)); srcB = (cl_float4 *) malloc (N * sizeof (cl_float4)); dst = (cl_float *) malloc (N * sizeof (cl_float)); for (i = 0; i < N; ++i) { srcA[i].x = i; srcA[i].y = i; srcA[i].z = i; srcA[i].w = i; srcB[i].x = i; srcB[i].y = i; srcB[i].z = i; srcB[i].w = i; } ierr = exec_dot_product_kernel (source, N, srcA, srcB, dst); if (ierr) printf ("ERROR\n"); for (i = 0; i < N; ++i) { printf ("(%f, %f, %f, %f) . (%f, %f, %f, %f) = %f\n", srcA[i].x, srcA[i].y, srcA[i].z, srcA[i].w, srcB[i].x, srcB[i].y, srcB[i].z, srcB[i].w, dst[i]); if (srcA[i].x * srcB[i].x + srcA[i].y * srcB[i].y + srcA[i].z * srcB[i].z + srcA[i].w * srcB[i].w != dst[i]) { printf ("FAIL\n"); return -1; } } printf ("OK\n"); return 0; }