-
Notifications
You must be signed in to change notification settings - Fork 55
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
Broken precompilation under Julia 1.3-alpha1/win64 #110
Comments
Did you |
No dice, sorry! |
Just to be sure, what's the path of your using FFTW
FFTW.libfftw3 Also, what happens if you do the following? julia> using Libdl, FFTW
julia> Libdl.dlsym(Libdl.dlopen(FFTW.libfftw3), :fftw_threads_set_callback)
Ptr{Nothing} @0x00007fa8f8b58540 I can see the symbol
I suspect you're not pulling/using the right library |
Maybe FFTW is missing some kind of Windows |
Though CI is passing on Windows nightly for FFTW.jl: https://ci.appveyor.com/project/ararslan/fftw-jl/branch/master |
Yes, that's why I suspect for some reasons the OP is not using the correct library version and wanted to double check that. |
Hi all, Many thanks again!
I'll pull the DLLs from the nightly and see if a fix is had on my box, stay tuned! |
Wait, you said that your package is in julia> pathof(FFTW)
"C:\\Users\\henry\\.julia\\packages\\FFTW\\xi4tZ\\src\\FFTW.jl" but the library is in another place: julia> FFTW.libfftw3
"C:\\Users\\henry\\.julia\\dev\\FFTW\\deps\\usr\\bin\\libfftw3-3.dll" You have something mixed up |
My guess is that this should work for you: Libdl.dlsym(Libdl.dlopen("C:\\Users\\henry\\.julia\\packages\\FFTW\\xi4tZ\\deps\\usr\\bin\\libfftw3-3.dll"), :fftw_threads_set_callback) |
Newbie to Julia, do alpha releases hide the packages you install in the \dev path? Could explain the mismatch in paths; I've not tried to do anything outrageously funky :).
Unfortunately, again no dice :(.
Could you link me those DLLs more directly? I can move them in by hand to see if the problem is mitigated in this build. Edit: should also mention I've used a DLL explorer to check the exported symbol table of the |
I'd recommend to remove FFTW in Julia:
and manually remove the directory in Then, restart Julia and reinstall FFTW:
(note: both commands must be run in the Pkg manager mode, I put the opening
|
If this is still failing let's check that you got the right library:
If you get different results, you either still have something wrong or I miscomputed the hash (:see_no_evil:) |
Deleted the julia> using FFTW
julia> FFTW.libfftw3
"C:\\Users\\henry\\.julia\\packages\\FFTW\\xi4tZ\\deps\\usr\\bin\\libfftw3-3.dll" Very unfortunately:
|
Ah, but I just realized that AppVeyor does not exercise this feature — only the Travis script (which is currently just for linux and osx) tries setting |
That's promising; does that mean there's simply a missing |
Yes. |
I updated the FFTW source code at FFTW/fftw3@8a9236c … now we need a new build. |
Should be fixed on the master branch now, if you can try that ( |
Happy to report all OK! Thanks so much! |
@giordano I am facing this issue, I have provided the information that has been used to solve this issue about above. (@v1.6) pkg> activate .
Activating environment at `~/julia-related/MusicProcessing.jl/Project.toml`
julia> using Revise
julia> using MusicProcessing
julia> using FFTW
julia> pathof(FFTW)
"/home/ashwani/.julia/packages/FFTW/Iu2GG/src/FFTW.jl"
julia> FFTW.libfftw3
"/home/ashwani/.julia/artifacts/81791030d1dcd08bf0c67b3e8224cb573d0f5a0a/lib/libfftw3.so"
julia> FFTW.libfftw3f
"/home/ashwani/.julia/artifacts/81791030d1dcd08bf0c67b3e8224cb573d0f5a0a/lib/libfftw3f.so"
julia> using Libdl
julia> Libdl.dlsym(Libdl.dlopen(FFTW.libfftw3), :fftw_threads_set_callback)
Ptr{Nothing} @0x00007fb0086c2c40
# this is where issue is in my system
julia> Libdl.dlsym(Libdl.dlopen(FFTW.libfftw3f), :fftw_threads_set_callback)
ERROR: could not load symbol "fftw_threads_set_callback":
/home/ashwani/.julia/artifacts/81791030d1dcd08bf0c67b3e8224cb573d0f5a0a/lib/libfftw3f.so: undefined symbol: fftw_threads_set_callback
julia> audio_one_channel = SampleBuf(rand(1000), 10)
1000-element SampleBuf{Float64, 1}:
0.7188992365329432
0.9291267382769475
0.9235711252208105
0.7298652018343716
⋮
0.7817233868027189
0.9691375556064439
0.009171005643992869
julia> speedup(audio_one_channel, 1.5)
# also this doesn't make much sense yet to me
ERROR: could not load library "libfftw3"
libfftw3.so: cannot open shared object file: No such file or directory
Stacktrace:
[1] plan_dft_c2r_1d!
@ ~/julia-related/MusicProcessing.jl/src/complex.jl:22 [inlined]
[2] irfft!(dest::Vector{Float64}, src::Ptr{ComplexF64}, nfft::Int64)
@ MusicProcessing ~/julia-related/MusicProcessing.jl/src/complex.jl:35
[3] istft(stft::Matrix{ComplexF64}, samplerate::Float64, windowsize::Int64, hopsize::Int64; nfft::Int64, window::typeof(DSP.Windows.hanning))
@ MusicProcessing ~/julia-related/MusicProcessing.jl/src/TFR.jl:117
[4] istft
@ ~/julia-related/MusicProcessing.jl/src/TFR.jl:101 [inlined]
[5] #speedup#3
@ ~/julia-related/MusicProcessing.jl/src/audio.jl:99 [inlined]
[6] speedup (repeats 3 times)
@ ~/julia-related/MusicProcessing.jl/src/audio.jl:97 [inlined]
[7] top-level scope
@ REPL[15]:1
version info: julia> versioninfo()
Julia Version 1.6.1
Commit 6aaedecc44 (2021-04-23 05:59 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
CPU: Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-11.0.1 (ORCJIT, skylake) |
Hi all,
FFTW precompilation when directly imported breaks once, then seems OK (I have replicated this a few times with different Julia instances). It seems that the DLL libfftw3-3.dll does not export
fftw_threads_set_callback()
which is required for the new PARTR scheduling scheme under 1.3. Curious if the DLL needs updating or I'm just pulling a wonky one from the build script.Repeating "using" until the library imports does not seem to work in the context of other libraries (e.g. DSP.jl, Wavelets.jl):
The library lives here:
Finally, version info:
Help would be appreciated :). Do I just need updated DLLs?
The text was updated successfully, but these errors were encountered: