Reduce combinations of build configurations.
#583 addresses that there is a lack of CI testing for different build configurations. The number of recommended combinations is twelve. If we include the supported OS, there will be 24 or 36 (if we support Windows in the future) variants! It's almost not possible to ask the contributor to test twelve combinations on their local machine before pushing a pull request.
I suggest we reduce the combination of build configurations by marking some optional dependencies as required dependencies and dropping some outdated dependencies. This idea was also raised in https://github.com/Cytnx-dev/Cytnx/issues/580#issuecomment-2727607958. Below are my suggestions.
- Droped CUTT
- Marked cuQuantum as a required dependency when CUDA is enabled and combined the feature flag of cuTENSOR, cuQuatum and CUDA into one feature flag
- Marked HPTT as a required dependency or found an alternative package for efficiently transposing large tensors
I agree the general direction of the suggestion. Can someone comments on the performance?
For example, if we drop CUTT, do we lose any performance?
- [x] Drop CUTT
- [ ] Mark cuQuantum as a required dependency when CUDA is enabled and combined the feature flag of cuTENSOR, cuQuatum and CUDA into one feature flag
- [ ] Mark HPTT as a required dependency or found an alternative package for efficiently transposing large tensors
CUTT is removed in #645
It seems that openMP is not really used anymore, because the way the loops were parallelized before was not efficient. Could openMP be removed from the compiling options or is it planned to parallelize loops efficiently again?
It seems that
openMPis not really used anymore, because the way the loops were parallelized before was not efficient. CouldopenMPbe removed from the compiling options or is it planned to parallelize loops efficiently again?
Although Cytnx doesn't use openMP, HPTT requires it to compile.