|
|
|
@ -14,7 +14,7 @@
@@ -14,7 +14,7 @@
|
|
|
|
|
#else |
|
|
|
|
#include <sys/socket.h> |
|
|
|
|
#include <netinet/in.h> |
|
|
|
|
#include <netdb.h> |
|
|
|
|
#include <netdb.h> |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#include <time.h> |
|
|
|
@ -31,7 +31,7 @@ extern int opt_worksize;
@@ -31,7 +31,7 @@ extern int opt_worksize;
|
|
|
|
|
|
|
|
|
|
char *file_contents(const char *filename, int *length) |
|
|
|
|
{ |
|
|
|
|
FILE *f = fopen(filename, "r"); |
|
|
|
|
FILE *f = fopen(filename, "rb"); |
|
|
|
|
void *buffer; |
|
|
|
|
|
|
|
|
|
if (!f) { |
|
|
|
@ -88,7 +88,7 @@ int clDevicesNum() {
@@ -88,7 +88,7 @@ int clDevicesNum() {
|
|
|
|
|
if (!strcmp(pbuff, "Advanced Micro Devices, Inc.")) |
|
|
|
|
{ |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
free(platforms); |
|
|
|
|
} |
|
|
|
@ -384,7 +384,7 @@ _clState *initCl(unsigned int gpu, char *name, size_t nameSize)
@@ -384,7 +384,7 @@ _clState *initCl(unsigned int gpu, char *name, size_t nameSize)
|
|
|
|
|
strcat(binaryfilename, numbuf); |
|
|
|
|
strcat(binaryfilename, ".bin"); |
|
|
|
|
|
|
|
|
|
binaryfile = fopen(binaryfilename, "r"); |
|
|
|
|
binaryfile = fopen(binaryfilename, "rb"); |
|
|
|
|
if (!binaryfile) { |
|
|
|
|
if (opt_debug) |
|
|
|
|
applog(LOG_DEBUG, "No binary found, generating from source"); |
|
|
|
@ -420,7 +420,7 @@ _clState *initCl(unsigned int gpu, char *name, size_t nameSize)
@@ -420,7 +420,7 @@ _clState *initCl(unsigned int gpu, char *name, size_t nameSize)
|
|
|
|
|
} |
|
|
|
|
if (opt_debug) |
|
|
|
|
applog(LOG_DEBUG, "Loaded binary image %s", binaryfilename); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
free(binaries[gpu]); |
|
|
|
|
goto built; |
|
|
|
|
} |
|
|
|
@ -479,7 +479,7 @@ build:
@@ -479,7 +479,7 @@ build:
|
|
|
|
|
applog(LOG_DEBUG, "cl_amd_media_ops not found, will not BFI_INT patch"); |
|
|
|
|
|
|
|
|
|
clState->program = clCreateProgramWithSource(clState->context, 1, (const char **)&source, sourceSize, &status); |
|
|
|
|
if (status != CL_SUCCESS) |
|
|
|
|
if (status != CL_SUCCESS) |
|
|
|
|
{ |
|
|
|
|
applog(LOG_ERR, "Error: Loading Binary into cl_program (clCreateProgramWithSource)"); |
|
|
|
|
return NULL; |
|
|
|
@ -487,7 +487,7 @@ build:
@@ -487,7 +487,7 @@ build:
|
|
|
|
|
|
|
|
|
|
/* create a cl program executable for all the devices specified */ |
|
|
|
|
status = clBuildProgram(clState->program, 1, &devices[gpu], NULL, NULL, NULL); |
|
|
|
|
if (status != CL_SUCCESS) |
|
|
|
|
if (status != CL_SUCCESS) |
|
|
|
|
{ |
|
|
|
|
applog(LOG_ERR, "Error: Building Program (clBuildProgram)"); |
|
|
|
|
size_t logSize; |
|
|
|
@ -496,7 +496,7 @@ build:
@@ -496,7 +496,7 @@ build:
|
|
|
|
|
char *log = malloc(logSize); |
|
|
|
|
status = clGetProgramBuildInfo(clState->program, devices[gpu], CL_PROGRAM_BUILD_LOG, logSize, log, NULL); |
|
|
|
|
applog(LOG_INFO, "%s", log); |
|
|
|
|
return NULL; |
|
|
|
|
return NULL; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
status = clGetProgramInfo( clState->program, CL_PROGRAM_BINARY_SIZES, sizeof(size_t)*nDevices, binary_sizes, NULL ); |
|
|
|
@ -559,7 +559,7 @@ build:
@@ -559,7 +559,7 @@ build:
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
clState->program = clCreateProgramWithBinary(clState->context, 1, &devices[gpu], &binary_sizes[gpu], (const unsigned char **)&binaries[gpu], &status, NULL); |
|
|
|
|
if (status != CL_SUCCESS) |
|
|
|
|
if (status != CL_SUCCESS) |
|
|
|
|
{ |
|
|
|
|
applog(LOG_ERR, "Error: Loading Binary into cl_program (clCreateProgramWithBinary)"); |
|
|
|
|
return NULL; |
|
|
|
@ -570,7 +570,7 @@ build:
@@ -570,7 +570,7 @@ build:
|
|
|
|
|
free(rawsource); |
|
|
|
|
|
|
|
|
|
/* Save the binary to be loaded next time */ |
|
|
|
|
binaryfile = fopen(binaryfilename, "w"); |
|
|
|
|
binaryfile = fopen(binaryfilename, "wb"); |
|
|
|
|
if (!binaryfile) { |
|
|
|
|
/* Not a fatal problem, just means we build it again next time */ |
|
|
|
|
if (opt_debug) |
|
|
|
@ -593,7 +593,7 @@ built:
@@ -593,7 +593,7 @@ built:
|
|
|
|
|
|
|
|
|
|
/* create a cl program executable for all the devices specified */ |
|
|
|
|
status = clBuildProgram(clState->program, 1, &devices[gpu], NULL, NULL, NULL); |
|
|
|
|
if (status != CL_SUCCESS) |
|
|
|
|
if (status != CL_SUCCESS) |
|
|
|
|
{ |
|
|
|
|
applog(LOG_ERR, "Error: Building Program (clBuildProgram)"); |
|
|
|
|
size_t logSize; |
|
|
|
@ -602,7 +602,7 @@ built:
@@ -602,7 +602,7 @@ built:
|
|
|
|
|
char *log = malloc(logSize); |
|
|
|
|
status = clGetProgramBuildInfo(clState->program, devices[gpu], CL_PROGRAM_BUILD_LOG, logSize, log, NULL); |
|
|
|
|
applog(LOG_INFO, "%s", log); |
|
|
|
|
return NULL; |
|
|
|
|
return NULL; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* get a kernel object handle for a kernel with the given name */ |
|
|
|
|