Comments (17)
I excel at being fall-out. 😄
I'll be upgrading to 1.0 soon too... As soon as the minimum required packages all work there. This one does with this fix, so ... progress!!!
from cudaapi.jl.
Isn't the directory containing the actual gcc
(ie. /bin
) on PATH?
Could you run with JULIA_DEBUG=CUDAapi
?
from cudaapi.jl.
I ran the same exact commands again after starting with JULIA_DEBUG=CUDAapi ./julia
, and the same exact output was reproduced. What does the debug var do? Should I be looking for extra output somewhere?
julia> ENV["JULIA_DEBUG"]
"CUDAapi"
julia> ENV["PATH"]
"/home/rick/.cargo/bin:/home/rick/texlive/TEXDIR2017/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/TEXDIR2017/bin/x86_64-linux:/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/home/rick/.local/bin:/home/rick/bin"
julia> using CUDAapi
julia> find_host_compiler()
WARNING: Could not parse GCC version info ("ccache version 3.3.6"), skipping this compiler.
ERROR: Could not find a suitable GCC
Stacktrace:
[1] find_host_compiler(::Void) at /home/rick/.julia/v0.6/CUDAapi/src/discovery.jl:361
[2] find_host_compiler() at /home/rick/.julia/v0.6/CUDAapi/src/discovery.jl:322
julia> find_binary(["gcc"], locations=["/usr/bin"])
"/usr/bin/gcc"
from cudaapi.jl.
Oh sorry, you're still using Julia 0.6. That variable only works on 0.7/1.0, could you try the package on one of those Julia versions? Thanks!
from cudaapi.jl.
...could you try a master version of the package on one of those Julia versions?
Sorry, not enough of the packages I use work on 0.7/1.0
yet. I guess I'll just have to wait.
from cudaapi.jl.
Sorry, not enough of the packages I use work on 0.7/1.0 yet. I guess I'll just have to wait.
Understandably, but there's no need to upgrade as Julia 1.0 works in a separate package directory. Or you could even use a temporary one:
$ JULIA_DEPOT_PATH=/tmp/julia julia-1.0
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.0.0 (2018-08-08)
_/ |\__'_|_|_|\__'_| | Official https://julialang.org/ release
|__/ |
(v1.0) pkg> add CUDAapi
Cloning default registries into /tmp/julia/registries
Cloning registry General from "https://github.com/JuliaRegistries/General.git"
Updating registry at `/tmp/julia/registries/General`
Updating git-repo `https://github.com/JuliaRegistries/General.git`
Resolving package versions...
Installed CUDAapi ─ v0.5.0
Updating `/tmp/julia/environments/v1.0/Project.toml`
[3895d2a7] + CUDAapi v0.5.0
Updating `/tmp/julia/environments/v1.0/Manifest.toml`
[3895d2a7] + CUDAapi v0.5.0
[2a0f44e3] + Base64
[ade2ca70] + Dates
[8ba89e20] + Distributed
[b77e0a4c] + InteractiveUtils
[76f85450] + LibGit2
[8f399da3] + Libdl
[37e2e46d] + LinearAlgebra
[56ddb016] + Logging
[d6f4376e] + Markdown
[44cfe95a] + Pkg
[de0858da] + Printf
[3fa0cd96] + REPL
[9a3f8284] + Random
[ea8e919c] + SHA
[9e88b42a] + Serialization
[6462fe0b] + Sockets
[8dfed614] + Test
[cf7118a7] + UUIDs
[4ec0a83e] + Unicode
julia> ENV["JULIA_DEBUG"] = "CUDAapi"
"CUDAapi"
julia> using CUDAapi
[ Info: Precompiling CUDAapi [3895d2a7-ec45-59b8-82bb-cfc6a382f9b3]
julia> find_binary(["gcc"])
┌ Debug: Request to look for binary gcc
│ locations = 0-element Array{String,1}
└ @ CUDAapi /tmp/julia/packages/CUDAapi/5KGp3/src/CUDAapi.jl:10
┌ Debug: Looking for binary gcc
│ locations =
│ 5-element Array{String,1}:
│ "/home/tbesard/Config/bin"
│ "/usr/local/bin"
│ "/usr/bin"
│ "/bin"
│ "/usr/games"
└ @ CUDAapi /tmp/julia/packages/CUDAapi/5KGp3/src/CUDAapi.jl:10
┌ Debug: Found binary x86_64-linux-gnu-gcc-6 at /usr/bin
└ @ CUDAapi /tmp/julia/packages/CUDAapi/5KGp3/src/discovery.jl:133
"/usr/bin/x86_64-linux-gnu-gcc-6"
from cudaapi.jl.
After reinstalling v1.0.0
and reorienting (no contains
anymore) and dealing with PITA type conversions, find_host_compiler
still doesn't work on my systems ...
$ JULIA_DEPOT_PATH=/tmp/julia ./julia
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.0.0 (2018-08-08)
_/ |\__'_|_|_|\__'_| | Official https://julialang.org/ release
|__/ |
(v1.0) pkg> add CUDAapi
Cloning default registries into /tmp/julia/registries
Cloning registry General from "https://github.com/JuliaRegistries/General.git"
Updating registry at `/tmp/julia/registries/General`
Updating git-repo `https://github.com/JuliaRegistries/General.git`
Resolving package versions...
Installed CUDAapi ─ v0.5.0
Updating `/tmp/julia/environments/v1.0/Project.toml`
[3895d2a7] + CUDAapi v0.5.0
Updating `/tmp/julia/environments/v1.0/Manifest.toml`
[3895d2a7] + CUDAapi v0.5.0
[2a0f44e3] + Base64
[ade2ca70] + Dates
[8ba89e20] + Distributed
[b77e0a4c] + InteractiveUtils
[76f85450] + LibGit2
[8f399da3] + Libdl
[37e2e46d] + LinearAlgebra
[56ddb016] + Logging
[d6f4376e] + Markdown
[44cfe95a] + Pkg
[de0858da] + Printf
[3fa0cd96] + REPL
[9a3f8284] + Random
[ea8e919c] + SHA
[9e88b42a] + Serialization
[6462fe0b] + Sockets
[8dfed614] + Test
[cf7118a7] + UUIDs
[4ec0a83e] + Unicode
julia> ENV["JULIA_DEBUG"] = "CUDAapi"
"CUDAapi"
julia> using CUDAapi
[ Info: Precompiling CUDAapi [3895d2a7-ec45-59b8-82bb-cfc6a382f9b3]
julia> find_host_compiler()
┌ Debug: Request to look for binary gcc
│ locations = 0-element Array{String,1}
└ @ CUDAapi /tmp/julia/packages/CUDAapi/5KGp3/src/CUDAapi.jl:10
┌ Debug: Looking for binary gcc
│ locations =
│ 12-element Array{String,1}:
│ "/home/rick/.cargo/bin"
│ "/home/rick/texlive/TEXDIR2017/bin/x86_64-linux"
│ "/home/rick/.cargo/bin"
│ "/home/rick/texlive/TEXDIR2017/bin/x86_64-linux"
│ "/usr/lib64/qt-3.3/bin"
│ "/usr/lib64/ccache"
│ "/usr/local/bin"
│ "/usr/local/sbin"
│ "/usr/bin"
│ "/usr/sbin"
│ "/home/rick/.local/bin"
│ "/home/rick/bin"
└ @ CUDAapi /tmp/julia/packages/CUDAapi/5KGp3/src/CUDAapi.jl:10
┌ Debug: Found binary ccache at /usr/lib64/ccache/../../bin
└ @ CUDAapi /tmp/julia/packages/CUDAapi/5KGp3/src/discovery.jl:133
ERROR: UndefVarError: warn not defined
Stacktrace:
[1] find_host_compiler(::Nothing) at /tmp/julia/packages/CUDAapi/5KGp3/src/discovery.jl:359
[2] find_host_compiler() at /tmp/julia/packages/CUDAapi/5KGp3/src/discovery.jl:331
[3] top-level scope at none:0
julia> find_binary(["gcc"])
┌ Debug: Request to look for binary gcc
│ locations = 0-element Array{String,1}
└ @ CUDAapi /tmp/julia/packages/CUDAapi/5KGp3/src/CUDAapi.jl:10
┌ Debug: Looking for binary gcc
│ locations =
│ 12-element Array{String,1}:
│ "/home/rick/.cargo/bin"
│ "/home/rick/texlive/TEXDIR2017/bin/x86_64-linux"
│ "/home/rick/.cargo/bin"
│ "/home/rick/texlive/TEXDIR2017/bin/x86_64-linux"
│ "/usr/lib64/qt-3.3/bin"
│ "/usr/lib64/ccache"
│ "/usr/local/bin"
│ "/usr/local/sbin"
│ "/usr/bin"
│ "/usr/sbin"
│ "/home/rick/.local/bin"
│ "/home/rick/bin"
└ @ CUDAapi /tmp/julia/packages/CUDAapi/5KGp3/src/CUDAapi.jl:10
┌ Debug: Found binary ccache at /usr/lib64/ccache/../../bin
└ @ CUDAapi /tmp/julia/packages/CUDAapi/5KGp3/src/discovery.jl:133
"/usr/lib64/ccache/../../bin/ccache"
julia> find_binary(["gcc"], locations=filter(p->!occursin(r"ccache",p), convert(Vector{String},split(ENV["PATH"],':'))))
┌ Debug: Request to look for binary gcc
│ locations =
│ 11-element Array{String,1}:
│ "/home/rick/.cargo/bin"
│ "/home/rick/texlive/TEXDIR2017/bin/x86_64-linux"
│ "/home/rick/.cargo/bin"
│ "/home/rick/texlive/TEXDIR2017/bin/x86_64-linux"
│ "/usr/lib64/qt-3.3/bin"
│ "/usr/local/bin"
│ "/usr/local/sbin"
│ "/usr/bin"
│ "/usr/sbin"
│ "/home/rick/.local/bin"
│ "/home/rick/bin"
└ @ CUDAapi /tmp/julia/packages/CUDAapi/5KGp3/src/CUDAapi.jl:10
┌ Debug: Looking for binary gcc
│ locations =
│ 34-element Array{String,1}:
│ "/home/rick/.cargo/bin"
│ "/home/rick/.cargo/bin/bin"
│ "/home/rick/texlive/TEXDIR2017/bin/x86_64-linux"
│ "/home/rick/texlive/TEXDIR2017/bin/x86_64-linux/bin"
│ "/home/rick/.cargo/bin"
│ "/home/rick/.cargo/bin/bin"
│ "/home/rick/texlive/TEXDIR2017/bin/x86_64-linux"
│ "/home/rick/texlive/TEXDIR2017/bin/x86_64-linux/bin"
│ ⋮
│ "/usr/lib64/ccache"
│ "/usr/local/bin"
│ "/usr/local/sbin"
│ "/usr/bin"
│ "/usr/sbin"
│ "/home/rick/.local/bin"
│ "/home/rick/bin"
└ @ CUDAapi /tmp/julia/packages/CUDAapi/5KGp3/src/CUDAapi.jl:10
┌ Debug: Found binary gcc at /usr/bin
└ @ CUDAapi /tmp/julia/packages/CUDAapi/5KGp3/src/discovery.jl:133
"/usr/bin/gcc"
from cudaapi.jl.
Interesting how in the last call to find_binary
, locations
ballooned from 11 to 34 elements.
from cudaapi.jl.
OK, sorry for the delay. This is caused by find_binary
returning the first and only match, which is a symlink to ccache
in your case. Next, those symlinks are resolved, which changes the behavior (returning ccache
's version instead of the gcc
's). Please test #56 and see if this fixes your issue.
from cudaapi.jl.
After, ...
$ cd ~/.julia/v0.6/CUDAapi
$ git branch mytestbr
$ git checkout mytestbr
$ git merge acd564aacfab953c3038b2525ee338b5d880afdc
... it seems there's a precompile problem now.
$ cd /path/to/julia/dir
$ ./julia
_
_ _ _(_)_ | A fresh approach to technical computing
(_) | (_) (_) | Documentation: https://docs.julialang.org
_ _ _| |_ __ _ | Type "?help" for help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 0.6.4 (2018-07-09 19:09 UTC)
_/ |\__'_|_|_|\__'_| |
|__/ | x86_64-redhat-linux
julia> Pkg.build("CUDAapi")
julia> using CUDAapi
INFO: Precompiling module CUDAapi.
ERROR: LoadError: ArgumentError: Module Libdl not found in current path.
Run `Pkg.add("Libdl")` to install the Libdl package.
Stacktrace:
[1] _require(::Symbol) at ./loading.jl:435
[2] require(::Symbol) at ./loading.jl:405
[3] include_from_node1(::String) at ./loading.jl:576
[4] include(::String) at ./sysimg.jl:14
[5] anonymous at ./<missing>:2
while loading /home/rick/.julia/v0.6/CUDAapi/src/CUDAapi.jl, in expression starting on line 5
ERROR: Failed to precompile CUDAapi to /home/rick/.julia/lib/v0.6/CUDAapi.ji.
Stacktrace:
[1] compilecache(::String) at ./loading.jl:710
[2] _require(::Symbol) at ./loading.jl:497
[3] require(::Symbol) at ./loading.jl:405
from cudaapi.jl.
Does something need to be backported? Was my git merge
not what I was supposed to do?
from cudaapi.jl.
Ahhh, OK. Yeah git merge
was the wrong move. If I use git cherry-pick -n
then find_host_compiler
works. Thanks!
Will you have a version compatible with Julia v0.6.4?
from cudaapi.jl.
Will you have a version compatible with Julia v0.6.4?
No, we've switched to 1.0. If you have a need, feel free to open open a back-port PR (ie. with base release-0.6
branch, adding the commits you need).
from cudaapi.jl.
Sorry, I'm not sure what that means exactly.
This sequence of commands produces a CUDAapi.jl
that fixes this issue for Julia v0.6.4
.
$ git checkout v0.4.3
$ git cherry-pick -n acd564aacfab953c3038b2525ee338b5d880afdc
Maybe this resultant source tree could be tagged v0.4.4
?
from cudaapi.jl.
On further thought, I'm not going to tag a new release just for this minor fix without backporting all of the other significant fixes that have happened on the master branch. But doing so requires much more effort, because they've been using 1.0-era functions, while tagging a new release with only this fix would give a false sense of maintenance.
from cudaapi.jl.
I understand. The pain of progress. When avoiding the false sense of maintenance is greater than the real sense of broken.
from cudaapi.jl.
When avoiding the false sense of maintenance is greater than the real sense of broken.
There's been only your report about this issue, so I'd hope that the fall-out is limited 🙂
Do you have deployment issues where it is inconvenient to cherry-pick yourself?
from cudaapi.jl.
Related Issues (20)
- Remove warning HOT 3
- @runtime_ccall thread safety HOT 5
- find_cuda_library("cudnn",tk) returns nothing HOT 4
- could not load library: "C:\Users\USER\.julia\artifacts\~~~\bin\cudnn64_7.dll" HOT 2
- Could not find nvToolsExt (libnvToolsExt.dylib.1.0 or libnvToolsExt.dylib.1) in /Users/imac/.julia/artifacts/b502baf54095dff4a69fd6aba8667124583f6929/lib HOT 1
- ERROR: Could not find a suitable GCC HOT 4
- Unable to find cudnn HOT 9
- Cannot find cuDNN that was installed via anaconda (without sudo) HOT 4
- Fix hardcoded CUDA versions to folder name autodetection? HOT 2
- macOS CI for CUDA 10+ HOT 1
- CI does not spot: libcudadevrt.lib is actually cudadevrt.lib on windows HOT 4
- find_library word_size
- Longer term goal with other CUDA libraries HOT 4
- Finding 8.0 files instead of 10.1 ones HOT 5
- CUDA discovery failing with 1.3.0-rc1 HOT 1
- Discovery fails if CUDA env vars are set to empty variable HOT 2
- Float64 HOT 1
- CUDA version warning throws MethodError: no method matching version()
- Sort paths from CUDAapi.find_toolkit() in the descending order? HOT 2
- find_host_compiler was removed, but is still exported
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cudaapi.jl.