neoml icon indicating copy to clipboard operation
neoml copied to clipboard

.NET Core Support

Open KSemenenko opened this issue 4 years ago • 8 comments

Is there any chance of supporting .net core? For C++ integration is possible to use the C++ CLR which can wrap C++ and make all classes available in the .NET environment.

Now there are very few normal libraries for .net, despite the fact that it has long been cross-platform.

KSemenenko avatar Jun 17 '20 06:06 KSemenenko

Are you interested in a full wrapper or just an inference-wrapper?

SAngeliuk avatar Jun 17 '20 09:06 SAngeliuk

I have been looking for a library for .net for a long time to work with ML (nerual networls, GA, etc). I do not want to use TensorFlow and other python libraries. So I'm interested in the most comprehensive API possible. In general (except for ML.NET, which is still not very good), all available libraries are more or less dependent on TensorFlow. And I don’t understand why. Your library has everything what we need, a GPU, cross-platform, ready-made kits for building neural networks. So it would be great to be able to work with it from .NET If you need any help, then I'm ready :) @SAngeliuk

KSemenenko avatar Jun 17 '20 21:06 KSemenenko

Sounds great) We don’t have a .Net wrapper because it isn’t our tech stack… However, if you can help we could do it together! Let’s discuss it: [email protected] @KSemenenko

SAngeliuk avatar Jun 18 '20 14:06 SAngeliuk

I'd like also to contribute to .NET Core implementation, but I've not any experience of open source projects so far. Hope it's not gonna be an obstacle to community

EeeasyBreezy avatar Jul 02 '20 14:07 EeeasyBreezy

I have created two wrappers for NeoProxy.h, one is based on interop and is potentially cross-platform when I will be able to figure out proper DllImports for other platforms: https://github.com/eugeneagafonov/neoml-interop-wrapper The other one is using managed C++ which is currently compiles only windows binaries, but much cleaner https://github.com/eugeneagafonov/neoml-managedcpp-wrapper

@SAngeliuk and everyone, I would appreciate help with reviewing the API (it's challenging to encapsulate with interfaces) and preparing side by side build with NeoML

;)

eugeneagafonov avatar Jul 09 '21 17:07 eugeneagafonov

Thank you @eugeneagafonov! Great job! We will try to integrate your wrappers shortly.

SAngeliuk avatar Jul 13 '21 18:07 SAngeliuk

Thanks! Not sure if we need both, I think interop is the way to go until there is a way to compile managed C++ for non-windows. I can help with integration, if you can help setting up a placeholder empty netcore project in the repo, I can send an actual PR

eugeneagafonov avatar Jul 13 '21 21:07 eugeneagafonov

;)

eugeneagafonov avatar Jan 20 '22 15:01 eugeneagafonov