diff options
author | Cedric Nugteren <web@cedricnugteren.nl> | 2020-02-17 22:07:51 +0100 |
---|---|---|
committer | Cedric Nugteren <web@cedricnugteren.nl> | 2020-02-17 22:07:51 +0100 |
commit | 49eb490ee1c60ed254eb1c501e18ebd9948e0ab5 (patch) | |
tree | 7d9b8ef587d06a242c3e88eb4e490f8736eb2c5d /src/tuning/routines | |
parent | 8a19667e75017a255aeb6addc32815a0ec46b30f (diff) |
Catches all exceptions of the tuners
Diffstat (limited to 'src/tuning/routines')
-rw-r--r-- | src/tuning/routines/xgemm.cpp | 20 | ||||
-rw-r--r-- | src/tuning/routines/xtrsv.cpp | 18 |
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()); } } // ================================================================================================= |