kunzmi / managedCuda

ManagedCUDA aims an easy integration of NVidia's CUDA in .net applications written in C#, Visual Basic or any other .net language.
Other
440 stars 79 forks source link

what is the latest nuget package #110

Open pavlexander opened 1 year ago

pavlexander commented 1 year ago

Hi.

I would like to know how to get the latest version of this package.

On github you have only a single release dated 2015

image

On nuget package manager there is ManagedCuda (https://www.nuget.org/packages/ManagedCuda) that was last updated on 2019.

image

However there are a bunch of other packages available on nuget. Which one is the latest version? I am currently using the above mentioned https://www.nuget.org/packages/ManagedCuda version 10.0 and it's working fine. However, I would like to use the last version. So I tried installing supposedly the latest version: https://www.nuget.org/packages/ManagedCuda-11 package.

When project is targeting the .net standard 2.0 instead of .Net 6 I get the error in app, saying:

image

The regular nuget package worked fine on standard 2.0 . After changing the target framework it seems to work fine, but I am not sure if this is the latest version from the master branch?

Could you please make some clarity what is the last version? Could we expect the original package https://www.nuget.org/packages/ManagedCuda to ever be updated to latest version from master branch?

Also, if https://www.nuget.org/packages/ManagedCuda-11 is the new latest package - could we expect .net standard support? And maybe change the package icons?

image

Thank you

kunzmi commented 1 year ago

Hi,

Unfortunately the nuget packages are messed up and I can't change anything about it. Someone, and I don't know who, created the https://www.nuget.org/packages/ManagedCuda package before I started publishing managedCuda on nuget. But the one who created that nuget-package stopped maintaining it, a similar situation for all the other managedCuda-packages one can find on nuget that I didn't create. Because of this package, I had to give another name to my "official" nuget packages, hence the "-11" numbering, so the latest "official" package that I created is https://www.nuget.org/packages/ManagedCuda-11.

As for .net standard 2.0 support: This is not directly possible as the p/invoke architecture in .net evolved from .net standard 2.0 to .net 3.0 and only the latter allows having one single managedCuda binary that runs without any modifications and without any other dependencies on windows and linux targeting different cuda-library names on the different platforms.

In principle managedCuda compiles (or should at least compile) for .net standard 2.0, but then the library names must be adjusted for the correct platform (linux/windows) before compilation.

If you'd like to have a nice managedCuda-logo for the nuget-packages, feel free to create one ;-) So far, managedCuda doesn't have any logo...

Cheers, Michael

pavlexander commented 1 year ago

Unfortunately the nuget packages are messed up and I can't change anything about it. Someone, and I don't know who, created the https://www.nuget.org/packages/ManagedCuda package before I started publishing managedCuda on nuget. But the one who created that nuget-package stopped maintaining it, a similar situation for all the other managedCuda-packages one can find on nuget that I didn't create. Because of this package, I had to give another name to my "official" nuget packages, hence the "-11" numbering, so the latest "official" package that I created is https://www.nuget.org/packages/ManagedCuda-11.

I see... So all this time I have been using the wrong package.. Now I see that the author is wrong in the first package..

As for .net standard 2.0 support: This is not directly possible as the p/invoke architecture in .net evolved from .net standard 2.0 to .net 3.0 and only the latter allows having one single managedCuda binary that runs without any modifications and without any other dependencies on windows and linux targeting different cuda-library names on the different platforms.

Thank you for the clarification.

If you'd like to have a nice managedCuda-logo for the nuget-packages, feel free to create one ;-) So far, managedCuda doesn't have any logo...

Haha, I thought you could reuse the icon from the "main" package. But now I see that it's an unofficial version of somebody who re-published your work..

When I look at the package list - it's looks visually more appealing and more trustworthy when there is an icon. This might be the reason why the fake package has more downloads. If you don't care about the numbers then of course the icon is not needed. Unfortunately I don't have any icon you could use :)

Do you think maybe it's worth mentioning the information that you have just shared with the rest of the community? someplace in readme document? So the people were aware of what package they need to use? On the other hand, I might be the only one who got confused. So it's up to you.

Thank you for the quick response!

pavlexander commented 1 year ago

if you need ANY logo here are my couple of versions 128x128 sized:

image

image

available with the source at: https://github.com/pavlexander/gpu_tests/tree/master/logo

feel free to grab and use any of them (or modify) however you wish

nuget spec says: https://learn.microsoft.com/en-us/nuget/reference/nuspec

A URL for a 128x128 image with transparency background to use as the icon for the package in UI display.

p.s. if you are curious how the managedCuda performance compares to other solution just go 1 folder above in the source directory of the image. Spoiler: the performance is the best of all the solutions I tested.. You did a great job creating this library!