-
Notifications
You must be signed in to change notification settings - Fork 2
Github Builds
Compiler/Unit Test | Benchmark | Tensor Example | Tensor | openCL | uBLAS | Coverage |
---|---|---|---|---|---|---|
Apple Clang Darwin 11 C++11 | ✔ | ❌ | ❌ | ❌ | ✔ | ❌ |
Apple Clang Darwin 11 C++17 | ✔ | ✔ | ✔ | ❌ | ✔ | ❌ |
Apple Clang Darwin 11 C++2a | ✔ | ✔ | ✔ | ❌ | ✔ | ❌ |
Windows MSVC 14.16 C++11 | ✔ | ❌ | ❌ | ❌ | ✔ | ❌ |
Windows MSVC 14.25 C++11 | ✔ | ❌ | ❌ | ❌ | ✔ | ❌ |
Windows MSVC 14.25 C++17 | ✔ | ✔ | ✔ | Disabled | ✔ | ❌ |
Windows MSVC 14.25 C++Latest | ✔ | ✔ | ✔ | ❌ | ✔ | ❌ |
Linux Clang 6 C++11 | ✔ | ❌ | ❌ | ❌ | ✔ | ❌ |
Linux Clang 8 C++11 | ✔ | ❌ | ❌ | ❌ | ✔ | ❌ |
Linux Clang 9 C++11 | ✔ | ❌ | ❌ | ❌ | ✔ | ❌ |
Linux Clang 10 C++11 | ✔ | ❌ | ❌ | ❌ | ✔ | ❌ |
Linux Clang 6.0 C++17 | ✔ | ✔ | ✔ | ❌ | ✔ | ❌ |
Linux Clang 8 C++17 | ✔ | ✔ | ✔ | ❌ | ✔ | ❌ |
Linux Clang 9 C++17 | ✔ | ✔ | ✔ | ❌ | ✔ | ❌ |
Linux Clang 10 C++17 | ✔ | ✔ | ✔ | ❌ | ✔ | ❌ |
Linux Clang 10 C++2a | ✔ | ✔ | ✔ | ❌ | ✔ | ❌ |
Linux GCC 7 C++11 | ✔ | ❌ | ❌ | ❌ | ✔ | ❌ |
Linux GCC 8 C++11 | ✔ | ❌ | ❌ | ❌ | ✔ | ❌ |
Linux GCC 9 C++11 | ✔ | ❌ | ❌ | ❌ | ✔ | ❌ |
Linux GCC 10 C++11 | ✔ | ❌ | ❌ | ❌ | ✔ | ❌ |
Linux GCC 7 C++17 | ✔ | ✔ | ✔ | Disabled | ✔ | ❌ |
Linux GCC 8 C++17 | ✔ | ✔ | ✔ | ❌ | ✔ | ❌ |
Linux GCC 9 C++17 | ✔ | ✔ | ✔ | ❌ | ✔ | ✔ |
Linux GCC 10 C++17 | ✔ | ✔ | ✔ | ❌ | ✔ | ❌ |
Linux GCC 10 C++2a | ✔ | ✔ | ✔ | ❌ | ✔ | ❌ |
✔ : Testing and Stabilized. Should be passing always.
❌ : Not testing
Disabled: Testing has been explicitly disabled due to instability.
OS | Toolchain | Compiler Flags |
---|---|---|
Linux Ubuntu 20.04 | GCC | -O0 |
Linux Ubuntu 20.04 | Clang | -O3 |
Windows 10 | MSVC | No Special Flags |
MacOS Catalina | Clang | No Special Flags |
UB Sanitizer | GCC and Clang | "-g -fsanitize=undefined" |
TH Sanitizer | GCC and Clang | "-g -fsanitize=thread -O2" |
ADD Sanitizer | GCC and Clang | "-g -fsanitize=address -fno-omit-frame-pointer" |
Clang Tidy | Clang-Tidy-10 | Configuration File |
Clang Format | Clang-Format-10 | Configuration File |
Codecov | gcov 9.3.0 | No Branch Coverage & only tensor module |
- In C++11 CI will not build
Tensor Examples
,Tensor Tests
. -
Coverage is only being reported by
Linux GCC-7 C++17
. - OpenCL testing is being done by
MSVC 14.25 C++17
andGCC-7 C++17
. Both of them are unstable in testing OpenCL. Due to poor setup of openCL toolkit or some other reasons, the CI sometimes fails and sometimes succeeds randomly. - All CI will test uBLAS and Benchmark.
- All CI above C++11 will test the Tensor Example and Tensor Unit tests.
Depending upon the number of tests a CI is running, the time of completion varies across the job, It is also worth noticing that openCL test usually take longer than expected, taking over 15 min in some cases due to the amount of openCL setup required prior to building the test.
Generally, the complete test suit with all CI configuration will complete in under 15 min, most of the above jobs run in parallel and depending upon the number of runners available in the GitHub Runner pool, the amount of parallelism may change.
- Using
cache
to Cache the compiler intermediate builds. -
Opting more reliable way to set up openCL on CI quickly.Cem is likely to replace openCL with openMP.
I have disabled all OpenCL tests, this speeds the build process and now CI is very reliable.
I thank our mentor Cem for his constant support and help in achieving our goals. We always find him helpful and he was always easy to reach for help or discussion regarding the work. We would also like to thank Google for the Google Summer of Code Programme, without which all these wouldn't be possible. Lastly, we express our gratitude to our parents for helping and providing us with all resources to carrying out our work nicely from our homes.
- Project Proposal
- Milestones and Tasks
- Implementation
- cpp20
- github-actions
- features/tidy
- features/format
- features/cmake
- Documentation
- Pull Requests
- Future Work