OCL: select number to times from CLI
This commit is contained in:
parent
c52c7f290c
commit
0edd0646a6
@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
#define DATATYPE double
|
#define DATATYPE double
|
||||||
unsigned int ARRAY_SIZE = 50000000;
|
unsigned int ARRAY_SIZE = 50000000;
|
||||||
#define NTIMES 10
|
unsigned int NTIMES = 10;
|
||||||
|
|
||||||
#define MIN(a,b) ((a) < (b)) ? (a) : (b)
|
#define MIN(a,b) ((a) < (b)) ? (a) : (b)
|
||||||
#define MAX(a,b) ((a) > (b)) ? (a) : (b)
|
#define MAX(a,b) ((a) > (b)) ? (a) : (b)
|
||||||
@ -48,6 +48,14 @@ struct invaliddevice : public std::exception
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct badntimes : public std::exception
|
||||||
|
{
|
||||||
|
virtual const char * what () const throw ()
|
||||||
|
{
|
||||||
|
return "Chosen number of times is invalid, must be >= 2";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
size_t sizes[4] = {
|
size_t sizes[4] = {
|
||||||
2 * sizeof(DATATYPE) * ARRAY_SIZE,
|
2 * sizeof(DATATYPE) * ARRAY_SIZE,
|
||||||
2 * sizeof(DATATYPE) * ARRAY_SIZE,
|
2 * sizeof(DATATYPE) * ARRAY_SIZE,
|
||||||
@ -120,6 +128,8 @@ int main(int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
parseArguments(argc, argv);
|
parseArguments(argc, argv);
|
||||||
|
|
||||||
|
if (NTIMES < 2) throw badntimes();
|
||||||
|
|
||||||
// Open the Kernel source
|
// Open the Kernel source
|
||||||
std::ifstream in("ocl-stream-kernels.cl");
|
std::ifstream in("ocl-stream-kernels.cl");
|
||||||
if (!in.is_open()) throw badfile();
|
if (!in.is_open()) throw badfile();
|
||||||
@ -385,6 +395,14 @@ void parseArguments(int argc, char *argv[])
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (!strcmp(argv[i], "--numtimes") || !strcmp(argv[i], "-n"))
|
||||||
|
{
|
||||||
|
if (++i >= argc || !parseUInt(argv[i], &NTIMES))
|
||||||
|
{
|
||||||
|
std::cout << "Invalid number of times" << std::endl;
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (!strcmp(argv[i], "--help") || !strcmp(argv[i], "-h"))
|
else if (!strcmp(argv[i], "--help") || !strcmp(argv[i], "-h"))
|
||||||
{
|
{
|
||||||
std::cout << std::endl;
|
std::cout << std::endl;
|
||||||
@ -394,6 +412,7 @@ void parseArguments(int argc, char *argv[])
|
|||||||
std::cout << " --list List available devices" << std::endl;
|
std::cout << " --list List available devices" << std::endl;
|
||||||
std::cout << " --device INDEX Select device at INDEX" << std::endl;
|
std::cout << " --device INDEX Select device at INDEX" << std::endl;
|
||||||
std::cout << " -s --arraysize SIZE Use SIZE elements in the array" << std::endl;
|
std::cout << " -s --arraysize SIZE Use SIZE elements in the array" << std::endl;
|
||||||
|
std::cout << " -n --numtimes NUM Run the test NUM times (NUM >= 2)" << std::endl;
|
||||||
std::cout << std::endl;
|
std::cout << std::endl;
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user