Bandicoot intergration - #425
Conversation
|
Adding the GPU Jenkins job next, before pushing further changes, so I can make sure, that each commit builds. |
|
|
||
| #include <armadillo> | ||
|
|
||
| #ifdef USE_COOT |
There was a problem hiding this comment.
@zoq Suggest changing USE_COOT to ENS_USE_COOT here and in CMakeLists.txt.
This is for consistency with all the other macros used by ensmallen, where the ENS_ prefix is used. The prefix helps avoid potential clashes.
There was a problem hiding this comment.
I think that we can actually leave whether or not Bandicoot is included up to the user---so, if they want Bandicoot, they should write in their program
#include <bandicoot>
#include <ensmallen.hpp>
and then in this file, we can detect whether or not Bandicoot is available by checking for a new enough version like this:
#if defined(COOT_VERSION_MAJOR) && \
((COOT_VERSION_MAJOR >= 2) || (COOT_VERSION_MAJOR == 2 && COOT_VERSION_MINOR >= 1))
#define ENS_USE_COOT
#endif
That is the idea we have been planning on for mlpack, at least. Let me know if I overlooked something.
d1ebe01 to
eb2b0c8
Compare
…d and datatype. 2. Update IQN optimizer to build against Armadillo and Bandicoot. 3. Update IQN test cases to test against Armadillo and Bandicoot backend. 4. Update logisitic regression function, to support Armadillo and Bandicoot.
…dicoot datatypes.
…d Bandicoot datatypes.
1. AdaBelief 2. AdaBound 3. AMSBound 4. AdaGrad 5. Adam 6. Adamax 7. AMSGrad 8. Nadam 9. Nadamax 10. OptimisticAdam 11. Eve 12. FTML 13. LBFGS 14. Lookahead 15. Padam 16. QHAdam 17. SMORMS3 18. SpaleraSGD 19. SPSA 20. SWATS 21. WNGrad 22. Yogi 23. MomentumSGD 24. NesterovMomentum 25. QuasiHyperbolic 26. SGD 27. SGDR 28. SnapshotSGDR 29. CNE 30. CMAES 31. ActiveCMAES 32. PSO 33. LBestPSO 34. MOEAD 35. AugmentedLagrangian
1. AdaDelta 2. AdaSqrt 3. BigBatchSGD 4. CoordinateDescent (CD) 5. GradientDescent 6. GridSearch 7. NSGA2 8. ParallelSGD
1. DifferentialEvolution (DE) 2. RMSProp 3. SimulatedAnnealing (SA) 4. SARAH 5. SARAH+ 6. SVRG 7. BarzilaiBorweinDecay 8. DemonAdam 9. DemonSGD
rcurtin
left a comment
There was a problem hiding this comment.
Hopefully I won't break Github with all of these comments 😬 😬
Anyway this is great. I left a lot of comments but hopefully most of them are trivial. I tried to identify places where it would be better to keep things on the CPU instead of potentially moving them to the GPU. I'm not certain I identified every place but I did my best. Many of the test files had some strange indentation so it made it hard to review that part---can you see maybe what happened there?
It looks like some of the Jenkins CI nodes (hinode or polar) are down so some of the CI builds don't run. If you want to move those to GHA instead of Jenkins that works too, up to you.
…nce randg is not supported in Bandicoot.
Co-authored-by: Ryan Curtin <ryan@ratml.org>
…ndicoot if found).
… that allows to use a different datatype i.e. arma::fvec or coot::fvec.
bd09952 to
8286511
Compare
…guide. Co-authored-by: Ryan Curtin <ryan@ratml.org>
…andicoot has already been included.
…or sparse matrices.
… paretoSet, so we can avoid introducing new template parameters.
… paretoSet, so we can avoid introducing new template parameters.
…optimizer class easier.
|
Nice, everything is handled here and I think this is ready to go once we get it to pass the builds. I noticed that the |
…ilable during compilation.
rcurtin
left a comment
There was a problem hiding this comment.
Nice, looks good to me! There are some failing tests but these will be fixed by the FP16 support PR.
|
We'll need to get the FP16 PR merged to fix some of the tests before a release, but, really great to finally get this in! |
Integrating Bandicoot into ensmallen, so we can build against Armadillo and Bandicoot.