summaryrefslogtreecommitdiff
path: root/src/tuning/routines
diff options
context:
space:
mode:
authorCedric Nugteren <web@cedricnugteren.nl>2020-02-17 22:07:51 +0100
committerCedric Nugteren <web@cedricnugteren.nl>2020-02-17 22:07:51 +0100
commit49eb490ee1c60ed254eb1c501e18ebd9948e0ab5 (patch)
tree7d9b8ef587d06a242c3e88eb4e490f8736eb2c5d /src/tuning/routines
parent8a19667e75017a255aeb6addc32815a0ec46b30f (diff)
Catches all exceptions of the tuners
Diffstat (limited to 'src/tuning/routines')
-rw-r--r--src/tuning/routines/xgemm.cpp20
-rw-r--r--src/tuning/routines/xtrsv.cpp18
2 files changed, 21 insertions, 17 deletions
diff --git a/src/tuning/routines/xgemm.cpp b/src/tuning/routines/xgemm.cpp
index 7d886ebf..f5c4569e 100644
--- a/src/tuning/routines/xgemm.cpp
+++ b/src/tuning/routines/xgemm.cpp
@@ -214,15 +214,17 @@ using double2 = clblast::double2;
// Main function (not within the clblast namespace)
int main(int argc, char *argv[]) {
- const auto command_line_args = clblast::RetrieveCommandLineArguments(argc, argv);
- switch(clblast::GetPrecision(command_line_args)) {
- case clblast::Precision::kHalf: clblast::TuneXgemm<half>(argc, argv); break;
- case clblast::Precision::kSingle: clblast::TuneXgemm<float>(argc, argv); break;
- case clblast::Precision::kDouble: clblast::TuneXgemm<double>(argc, argv); break;
- case clblast::Precision::kComplexSingle: clblast::TuneXgemm<float2>(argc, argv); break;
- case clblast::Precision::kComplexDouble: clblast::TuneXgemm<double2>(argc, argv); break;
- }
- return 0;
+ try {
+ const auto command_line_args = clblast::RetrieveCommandLineArguments(argc, argv);
+ switch(clblast::GetPrecision(command_line_args)) {
+ case clblast::Precision::kHalf: clblast::TuneXgemm<half>(argc, argv); break;
+ case clblast::Precision::kSingle: clblast::TuneXgemm<float>(argc, argv); break;
+ case clblast::Precision::kDouble: clblast::TuneXgemm<double>(argc, argv); break;
+ case clblast::Precision::kComplexSingle: clblast::TuneXgemm<float2>(argc, argv); break;
+ case clblast::Precision::kComplexDouble: clblast::TuneXgemm<double2>(argc, argv); break;
+ }
+ return 0;
+ } catch (...) { return static_cast<int>(clblast::DispatchException()); }
}
// =================================================================================================
diff --git a/src/tuning/routines/xtrsv.cpp b/src/tuning/routines/xtrsv.cpp
index 7551d1f5..77252273 100644
--- a/src/tuning/routines/xtrsv.cpp
+++ b/src/tuning/routines/xtrsv.cpp
@@ -132,14 +132,16 @@ using double2 = clblast::double2;
// Main function (not within the clblast namespace)
int main(int argc, char *argv[]) {
- const auto command_line_args = clblast::RetrieveCommandLineArguments(argc, argv);
- switch(clblast::GetPrecision(command_line_args)) {
- case clblast::Precision::kSingle: clblast::TuneXtrsv<float>(argc, argv); break;
- case clblast::Precision::kDouble: clblast::TuneXtrsv<double>(argc, argv); break;
- case clblast::Precision::kComplexSingle: clblast::TuneXtrsv<float2>(argc, argv); break;
- case clblast::Precision::kComplexDouble: clblast::TuneXtrsv<double2>(argc, argv); break;
- }
- return 0;
+ try {
+ const auto command_line_args = clblast::RetrieveCommandLineArguments(argc, argv);
+ switch(clblast::GetPrecision(command_line_args)) {
+ case clblast::Precision::kSingle: clblast::TuneXtrsv<float>(argc, argv); break;
+ case clblast::Precision::kDouble: clblast::TuneXtrsv<double>(argc, argv); break;
+ case clblast::Precision::kComplexSingle: clblast::TuneXtrsv<float2>(argc, argv); break;
+ case clblast::Precision::kComplexDouble: clblast::TuneXtrsv<double2>(argc, argv); break;
+ }
+ return 0;
+ } catch (...) { return static_cast<int>(clblast::DispatchException()); }
}
// =================================================================================================