zhongkaifu / Seq2SeqSharp

Seq2SeqSharp is a tensor based fast & flexible deep neural network framework written by .NET (C#). It has many highlighted features, such as automatic differentiation, different network types (Transformer, LSTM, BiLSTM and so on), multi-GPUs supported, cross-platforms (Windows, Linux, x86, x64, ARM), multimodal model for text and images and so on.
Other
193 stars 38 forks source link

Supported CUDA version #4

Closed usptact closed 5 years ago

usptact commented 5 years ago

Hi,

Thanks for implementing many new features!

It appears that CUDA 8.0 is implicitly used. Is there a place to use different version? I have versions 9.0 and 9.2 installed in my system.

During runtime, how does application knows where the CUDA libraries reside? Are environment variables read or is this defined in the project?

Thank you very much!

zhongkaifu commented 5 years ago

Hi @usptact .

Seq2SeqSharp uses ManagedCUDA lib to interactive with CUDA lib. If you want to use different CUDA version, you could try to upgrade ManagedCUDA for it, but as far as I know, ManagedCUDA has 8.0 and 10.0 version, but no 9.0

Seq2SeqSharp calls NVRTC to compile kernel functions at run time, which has different ways to use CUDA libraries than NVCC. These information are not definied in the project. They are in environment variables, such as

CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0 CUDA_PATH_V10_0=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0 CUDA_PATH_V8_0=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0 CUDA_PATH_V9_1=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1 NVTOOLSEXT_PATH=C:\Program Files\NVIDIA Corporation\NvToolsExt\