-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Onedal algorithms backed by nuget packages #6521
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
Conversation
…nelearning into onedal_with_nuget
…nelearning into onedal_with_nuget
@rgesteve @michaelgsharp -- I gave a local test of this and was able to reproduce the problem. It looks like the error is due to missing |
var currentDir = AppContext.BaseDirectory; | ||
Output.WriteLine($"**** Running from directory {currentDir}."); | ||
|
||
var dllDir = AppContext.GetData("NATIVE_DLL_SEARCH_DIRECTORIES").ToString(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This doesn't work on .NETFramework, but I image you've just added this for debugging purposes. Make sure to remove it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will do, this whole test is there on a very temporary basis.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Commit #e2a60945 removes the test.
I tried to manually workaround the missing
After this, the test failed fast and terminated the process. What's interesting is that this is different than the load for |
Thank you Eric! Loading OneDalNative successfully and failing to load the dependencies was my observation as well in Linux: 193059:[pid 21092] openat(AT_FDCWD, "/data/projects/machinelearning/.dotnet/shared/Microsoft.NETCore.App/6.0.9/libOneDalNative.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) 193060:[pid 21092] openat(AT_FDCWD, "/data/projects/machinelearning/artifacts/bin/Microsoft.ML.Tests/Debug/net6.0/libOneDalNative.so", O_RDONLY|O_CLOEXEC) = 415 193069:[pid 21092] openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 415 193073:[pid 21092] openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libonedal_core.so.1.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) 193074:[pid 21092] openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libonedal_core.so.1.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) 193075:[pid 21092] openat(AT_FDCWD, "/lib/libonedal_core.so.1.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) Like you said, the loader doesn't even bother trying to find the dependencies in directories other than the system-wide ldconfig standard ones. In the meanwhile will work with the oneDAL team to see if we can figure out what's going on. |
It might be worthwhile following up with Interop folks like @AaronRobinsonMSFT and @elinor-fung to understand if it is expected that the runtime doesn’t set this native probing path itself. It could be something odd about how ML.Net runs tests. |
Looks like commit 35a18a1 addresses this for Linux, by specifying in the RPATH that dependencies should be searched for in the same directory OneDalNative is found. Trying to figure out what the equivalent command line options are for the VC compiler |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Supercedes #6373 and #6364 allowing for full build of functionality without extra packages (they're downloaded by
build.sh
). Also includes sample to illustrate use.We are excited to review your PR.
So we can do the best job, please check:
Fixes #nnnn
in your description to cause GitHub to automatically close the issue(s) when your PR is merged.