Commit 6abc5466 authored by Oliver Bock's avatar Oliver Bock
Browse files

Added crude feature to pass device ID as second command line argument (replaying 3987009c)

parent 47d231be
......@@ -740,51 +740,73 @@ int main (int argc, char * const argv[]) {
}
device_id = NULL;
unsigned int i = 0;
unsigned int i;
for(i = 0; i < num_devices; i++)
{
if (argc == 3) {
cl_bool available;
err = clGetDeviceInfo(device_ids[i], CL_DEVICE_AVAILABLE, sizeof(cl_bool), &available, NULL);
if(err)
{
log_error("Cannot check device availability of device # %d\n", i);
err = clGetDeviceInfo(device_ids[atoi(argv[2])], CL_DEVICE_AVAILABLE, sizeof(cl_bool), &available, NULL);
if(err) {
printf("ERROR: Cannot check device availability of device # %d\n", atoi(argv[2]));
return -1;
}
if(available)
{
device_id = device_ids[i];
if(available) {
device_id = device_ids[atoi(argv[2])];
}
else {
char name[200];
err = clGetDeviceInfo(device_ids[i], CL_DEVICE_NAME, sizeof(name), name, NULL);
if(err == CL_SUCCESS) {
printf("INFO: Using device %s...\n", name);
printf("ERROR: Device %s not available for compute\n", name);
}
else {
printf("INFO: Using device # %d...\n", i);
printf("ERROR: Device # %d not available for compute\n", atoi(argv[2]));
}
break;
}
else
return -1;
}
}
else {
for(i = 0; i < num_devices; i++)
{
char name[200];
err = clGetDeviceInfo(device_ids[i], CL_DEVICE_NAME, sizeof(name), name, NULL);
if(err == CL_SUCCESS)
{
log_info("Device %s not available for compute\n", name);
cl_bool available;
err = clGetDeviceInfo(device_ids[i], CL_DEVICE_AVAILABLE, sizeof(cl_bool), &available, NULL);
if(err) {
log_error("Cannot check device availability of device # %d. Continuing with next available device...\n", i);
continue;
}
else
{
log_info("Device # %d not available for compute\n", i);
if(available) {
device_id = device_ids[i];
break;
}
else {
char name[200];
err = clGetDeviceInfo(device_ids[i], CL_DEVICE_NAME, sizeof(name), name, NULL);
if(err == CL_SUCCESS) {
log_info("Device %s not available for compute\n", name);
}
else {
log_info("Device # %d not available for compute\n", i);
}
}
}
}
if(!device_id)
{
if(!device_id) {
log_error("None of the devices available for compute ... aborting test\n");
test_finish();
return -1;
}
else {
char name[200];
err = clGetDeviceInfo(device_id, CL_DEVICE_NAME, sizeof(name), name, NULL);
if(err == CL_SUCCESS) {
printf("INFO: Using device %s...\n", name);
}
else {
printf("INFO: Using device # %d...\n", i);
}
}
context = clCreateContext(0, 1, &device_id, NULL, NULL, &err);
if(!context || err)
......@@ -826,7 +848,7 @@ int main (int argc, char * const argv[]) {
return -1;
}
if(argc == 2) { // arguments are supplied in a file with arguments for a single run are all on the same line
if(argc >= 2) { // arguments are supplied in a file with arguments for a single run are all on the same line
paramFile = fopen(argv[1], "r");
if(!paramFile) {
log_error("Cannot open the parameter file\n");
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment