The core types and functions of the SciNim ecosystem
scinim / nimcuda Goto Github PK
View Code? Open in Web Editor NEWNim bindings for CUDA
License: Apache License 2.0
Nim bindings for CUDA
License: Apache License 2.0
Sorry, I forgot about this in my mini PR.
Could you tag a new version with the fixed docs?
The reason I made that PR was, because I'm trying to fix arraymancer's docs right now. If a new version is tagged, a freshly cloned arraymancer should get the new version and thus build the docs successfully.
What would this take to add support for cuda 11.7 ?
Hey Andrea,
Great work on the bindings, they work very well. Would it be possible to add the version of Cuda and CuDNN that you used in the readme. It seems to be Cuda 8 + CuDNN 5.1 currently.
Due to how Cuda/CuDNN depreciation works, deprecated or WIP procs temporarily get a version number like this one:
https://github.com/unicredit/nimcuda/blob/4bf458d13fe98380aa7241b891c1e850393ae57f/nimcuda/cudnn.nim#L275-L279
Those are then removed for ever (deprecated) or replace a "normal core" proc.
So between CuDNN v5.1 and CuDNN v7, some procs may have the same name but different arguments due to having been replaced, or others will have disappeared altogether.
I have tried to install nimcuda before running.
nim fft
nim c -r fft.nim
nim cpp -r fft.nim
They all provide the same error:
/home/kolmogorov/.cache/nim/fft_d/@m..@snimcuda@svector_types.nim.cpp:8:10: fatal error: vector_types.h: No such file or directory
8 | #include "vector_types.h"
It is a file proper to cuda 8.0 https://github.com/tpn/cuda-samples/blob/master/v8.0/include/vector_types.h
My CUDA installation (v8.0), uses this name convention:
name(64|32)_80.dll
while nimcuda expects name.dll.
I've worked around this by modifying the imported library names but I am wondering if there is something that I'm missing.
Executing task fft in /home/foobar/programming/nimcuda/nimcuda.nimble
Verifying dependencies for [email protected]
Compiling examples/fft.nim (from package nimcuda) using c backend
/home/foobar/programming/nimcuda/nimcuda/driver_types.nim(796, 39) Warning: type pragmas follow the type name; this form of writing pragmas is deprecated [Deprecated]
/home/foobar/programming/nimcuda/nimcuda/cuda_occupancy.nim(461, 5) Error: invalid else, all cases are already covered
Error: Execution failed with exit code 1
... Command: "/home/foobar/.nimble/bin/nim" c --noNimblePath "--linetrace:on" "--clibdir:/usr/local/cuda/lib64" "--cincludes:/usr/local/cuda/include" "--stacktrace:on" "--hints:off" "--run" "--path:." "--linedir:on" "--debuginfo" "examples/fft.nim"
As of Nim 0.20.0, adding an 'else' if switching over an enum (and all cases are already covered) is an error.
Fixed by #5
Nim CIs for Nim 1.2 have reported:
nimcuda.nimble(26, 20) Error: ambiguous call; both system.fileExists(filename: string) [declared in /home/vsts/work/1/s/lib/system/nimscript.nim(130, 6)] and os.fileExists(filename: string) [declared in /home/vsts/work/1/s/lib/pure/os.nim(1138, 6)] match for: (string)
(It is not a problem with Nim 1.6 nor Nim devel)
I'm guessing, this started after this commit: 5735fed
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.