Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Why .NET Standard dropped? #7

Closed
kant2002 opened this issue Nov 22, 2018 · 15 comments
Closed

Why .NET Standard dropped? #7

kant2002 opened this issue Nov 22, 2018 · 15 comments
Assignees
Labels

Comments

@kant2002
Copy link
Contributor

As part of 0.4.0-beta release, I see that .NET Standard was dropped, and replaced to .NET Core App 2.0 which is more limiting in my opinion. What are the rationale why .NET Core App is strictly needed for this library?

@m4rs-mt
Copy link
Owner

m4rs-mt commented Nov 22, 2018

The reason ILGPU does not support .NET Standard 2.0 is because ILGPU relies on the System.Reflection.Emit.ILGeneration package, which is currently not (correctly) supported on all .NET Standard compatible platforms. For more information, visit https://github.com/dotnet/corefx/issues/29365 and https://github.com/dotnet/corefx/issues/30654

There are basically two possibilities:

  1. Create an ILGPU package that pretends to be .NET Standard 2.0 compatible, but one of its dependencies is not.
  2. Wait until the dependency is fully compatible before claiming full compatibility with the .NET standard.

@m4rs-mt m4rs-mt self-assigned this Nov 25, 2018
@kant2002
Copy link
Contributor Author

I want to ask one more question. I just do not aware about ability to target netcoreapp2.0 libraries from netcoreapp2.1. If this is possible, I personally would not be affected in any way, if not, then I would ask for targeting of multiple frameworks. Even if it is targeted, maybe it would be practical to include into samples, that this library could be used from netcoreap2.1 project.

@m4rs-mt
Copy link
Owner

m4rs-mt commented Dec 1, 2018

I don't see any problems using .netcoreapp2.0 libs from netcoreapp2.1 apps or libraries. This should work without any further problems (in theory).

@scherenhaenden
Copy link

Hello.
I got almost the same issue but the other way around. I get from nuget only the .netstandard version, not the .netframework version

@kant2002
Copy link
Contributor Author

kant2002 commented Dec 3, 2018

@scherenhaenden 0.3.0 version was netstandard2.0 which allow it to run under net47
0.4.0-beta would be netcoreapp2.0 (which is different from netstandard) and that make it run only on netcoreapp2.0, netcoreapp2.1 and netcoreapp3.0 (when it will be published). So your application should target at least netcoreapp2.0 now.

Given the MS stance on full .NET, it is reasonable to move all applications on .NET Core instead of creating them on .NET framework.

@samy2
Copy link

samy2 commented Dec 3, 2018

@scherenhaenden , @kant2002
Well, from what I tested : the .netstandard nuget package of ILGPU 0.3.0 is usable from a net47 application. The nuget package of ILGPU 0.4.0-beta includes two builds : netcoreapp2.0 and net47. It is usable from a net47 application too.

@kant2002
Copy link
Contributor Author

kant2002 commented Dec 3, 2018

Thanks for correcting me @samy2 the netcoreapp2.0 and net47 both supported. I'm more concentrated on .NET core workloads so do not care about net47 monikers, so I miss that. Dropping .NET framework is off-topic from my side, so @scherenhaenden sorry for potential confusion.

@scherenhaenden
Copy link

Hi,
thanks for your fast answer. It appears to be impossible to us it on Linux. At least, I get this error with the Assembly LLVM that appearst o be a badimage. I just discover this project today. I'll be trying to solve that issue when I get more time btu for now, I cannot use it.

Anyhow i made it work on dotnetcore (that the DLLs won't yell). Maybe tomorrow I'll see the other thing with bad assembly image.

@m4rs-mt
Copy link
Owner

m4rs-mt commented Dec 3, 2018

@scherenhaenden It looks like you are trying to use version 0.3 (which has native dependencies). This version is based on LLVM and only supports Windows and Ubuntu 14.04. Try v0.4-beta or the upcoming v0.5-beta which provides cross-platform support.

@scherenhaenden
Copy link

@m4rs-mt thanks a lot for that Info. I'll be trying the next days

@scherenhaenden
Copy link

@m4rs-mt
Hi!

I cloned your project, very nice of you doing all of this alone. I just wanted to mention that i cannot build it on Linux because it can be only built over VS.

I don't know if you need some kind of feedback on this. Just let me know and I would try to help you.

@m4rs-mt
Copy link
Owner

m4rs-mt commented Dec 5, 2018

@scherenhaenden Have you tried using the dotnet build command to build the project for .Net Core under Linux? Alternatively, you can use the nuget package v0.4-beta which contains a ready-to-use .Net Core build.

@scherenhaenden
Copy link

Thanks a lot... I had been looking for v0.4... and got 404...

I'll be trying to get some time free this week to try that ;)

@m4rs-mt
Copy link
Owner

m4rs-mt commented May 12, 2019

The mentioned issues were closed and already updated versions with .Net Standard 2.0 support are available as beta. As soon as the packages are stable I will add the .Net Standard 2.0 support as well.

@m4rs-mt
Copy link
Owner

m4rs-mt commented Oct 22, 2019

.Net Standard 2.1 support is now available. Special thanks to @MoFtZ 👍
I will close this issue now, as the next release will provide the desired .Net Standard support.

@m4rs-mt m4rs-mt closed this as completed Oct 22, 2019
m4rs-mt pushed a commit that referenced this issue Jun 7, 2021
* Added empty unit test projects
* Updated unit tests to netcoreapp2.1
* Added unit tests for XMath functions
* Fixed implementation of XMath.Log10 on Cuda accelerators
* Use hardware intrinsics for double-precision square root functions on Cuda accelerators
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants