-
-
Notifications
You must be signed in to change notification settings - Fork 17
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
cannot get test working with factory "neanderthatl" #15
Comments
Hmmm. I can't reproduce this. Does it also fail with test/.../internal/dnnl/directed-test namespace, that is, with the DNNL engine? How about Neanderthal tests? Does Neanderthal itself work on your machine with this setup, outside the context of Deep Diamond? Did it work in earlier versions? Can you share some details of your hardware/software platform? |
I can run the hello-world project in /example in neandertahl in native , cuda, opencl sucessfully. Using the same dependencies in deep-diamond makes some tests fail, but some pass. I can for example, run some of teh
|
I am on Arch Linux,
|
In teh directed-test the first few pass,
The first failing is If I run them one-by-one 5 or so fail. |
I had a system wide installation of MKL, which I just removed.
I tgough that I don't need any MKL installtion when using these dependencies:
Is this not correct ? |
Without the systemwide MKL the neanderthal hello-world is not working any more neither:
|
And indeed , it does not find the dynamic library:
|
Could it bee that the issue is
libneanderthal-mkl-0.33.03443062959179023093.so links to the former, while the MKL jar contains the latter ?
|
Seems to be similar to uncomplicate/neanderthal#119 |
I tried to go back to older `deep-diamond' versions, but in none the tests succesfully (via 'lein test')
Not sure this helps:
|
Could that be
It probably is. Thank you for discovering this. Can you go back to the global MKL installation for the time being as the system-wide intel-mkl package distributes the MKL 2020.4 with the libmkl_rt.so file. Does everything work in that configuration (do not load bytedeco)? I am not really sure how to approach solving this, as the neanderthal binary has to be built with the specific dependency statically (be it libmkl_rt.so, libmkl_rt.so.1, or libmkl_rt.so.2). AFAIK. I don't know why Intel introduced all these successive versions either. Any suggestions are highly welcome. |
In the worst case, I can build a neanderthal binary for new oneAPI versions, and distribute is as an alternative dependency that the user can choose in project.clj. |
In this setup:
I am back to the initial error: :cause "MKL error.", |
I would suggest to make in some form a Dockerfile. Either a working one, |
I have never used |
The following Dockerfile reproduces an error without MKL, but with dependcy to bytecode 2022.0-1.5.7
|
There shouldn't be, since I develop on Arch Linux too. Could you please clone the Neanderthal repository and run Neanderthal test suite with Is there a specific reason you're using OpenJDK 11 instead of a more recent one? I develop and test this on Java 18 (on Arch Linux). Please note this (solved) issue related to upgrade to Java 16: uncomplicate/neanderthal#115 |
I found the culprit. The Neanderthal/MKL per se are working as intended, as it seems, but for some reason the ARS5 stream is not supported on your machine. The -1140 error code in MKL is this one:
says: "ARS-5 counter-based pseudorandom number generator with a period of 2128, which uses instructions from the AES-NI set ARS5". https://en.wikipedia.org/wiki/AES_instruction_set This instruction set was added to x86 by Intel and AMD in 2008. There is a list of the supported architectures in the aforementioned wikipedia article. Can you please check where your CPU stands? Recent-ish (10 yrs or so) processors should support it, but if you're running this on an older one that might be the problem. |
I am not an CPU expert, bu I hink that I have an "I5", which should be supported in teh article:
|
i5 is only a category. The processor generation is determined by 9 in 9400, which is a fairly recent processor that supports AES-NI. https://www.techpowerup.com/cpu-specs/core-i5-9400f.c2145 Now, the first step is to run Neanderthal tests, so we can be sure whether only the random number generation fails, in which case we would have to find out why that feature fails in MKL. The error suggests that MKL determines that your processor doesn't support AES-NI (it might have been disabled in the OS perhaps?). But it might be that some other things fail, which would suggest that something in Neanderthal is the problem. Or it might all pass, which would suggest that deep diamond has some weird interaction with that feature, although it doesn't seem that probable from what I've seen. |
Please read this: https://www.cyberciti.biz/faq/how-to-find-out-aes-ni-advanced-encryption-enabled-on-linux-system/ It seems that some vendors ship their computers with AES-NI disabled in BIOS. That might be worth checking! |
Neanthertal tests fail with the same.
Should we close here an I open an issue in neanderthal ? |
indeed, mssing:
|
I believe that is a good idea. Please also link this discussion there. According to https://en.wikipedia.org/wiki/List_of_Intel_Core_i5_processors your processor does support AES-NI. My hunch is that currently it is disabled in BIOS (according to the internet, it might require BIOS update for some vendors). |
It's not even a "Bug" anywhere, so we can it as well close here, and just keep for reference. |
I reran tests on a VM where the "grep -m1 -o aes /proc/cpuinfo" does return "aes" and all test pass. |
I cannot get some tests passing of this package, getting MKL errors
Running for example:
gives
I followed instructions to include "org.bytedeco/mkl-platform-redist "
into project.clj:
but it fails with all 3 versions, always same error message.
Some tests pass, but some not.
The text was updated successfully, but these errors were encountered: