<Root[m]>
<rcurtin[m]> "Root: it seems like a cool..." <- Yes, right now they're only focusing on Pytorch, Tensorflow, Jax, Numpy and MxNet. I've also seen a few other libraries like this, e.g EagerPy & Thinc which allow you to write code that works with any of these back end frameworks but neither of them can do code transpilations. I've seen people use ONNX for doing framework conversions but ONNX is mainly focused on simplifying the deployment
<Root[m]>
process while it looks like Ivy allows for code conversions during training time also. And it's very easy to use -- doesn't require learning too much about ivy core and you can most conversions with simple decorators
<Root[m]>
I was curious to look at the overhead in time that all of this abstraction results in
<Danijel[m]>
Could mlpack lib be used on SHArC processor?
<Danijel[m]>
Page 2-99:
<Danijel[m]>
market. Using the -c++11switch, support for many of the ISO/IEC 14882:2011 C++ standard language features can be enabled. However, there is no support for library features that are new to ISO/IEC 14882:2011."
<Danijel[m]>
"The compiler shall compile any program that adheres to a freestanding implementation of the ISO/IEC 14882:2003 C++ standard, but it does not prohibit the use of language extensions (C/C++ Compiler Language Extensions) that are compatible with the correct translation of standard-conforming programs. The Library provided in C++ mode is a proper subset of the full Standard C++ Library and is designed specifically for the needs of the embedded
<Danijel[m]>
So... which C++ version does mlpack require? 👀
<rcurtin[m]>
Danijel: mlpack requires C++14, so if you have a C++14 compiler, it should work fine 👍
<rcurtin[m]>
I read a little more about the SHArC processor and the compiler that AD supplies... it's likely that it wouldn't be *too* hard to patch mlpack so that it works with only C++11. however, I don't remember exactly how many parts of C++14 support we depend on; I know we use `std::enable_if_t`, which is not available in C++11, but it's easy to use `std::enable_if` (which is available in C++11) instead; there are probably other things that would
<rcurtin[m]>
need to be changed too
<Danijel[m]>
Thanks. I'm affraid my C++ knowledge is very modest, so I probably won't be able to patch the code to make it compile on SHArC.
<Danijel[m]>
Especially because even C++11 isn't fully supported, if I understand the manual correctly.
<rcurtin[m]>
Yeah, we use C++11 features pretty heavily, so it is possible that the compiler does not even have the base support that is necessary :(