Git Product home page Git Product logo

cudaapi.jl's Introduction

CUDAapi.jl: DEPRECATED, use CUDA.jl instead!

Reusable components for CUDA development.

Build Status Coverage
PkgEval

This package provides some reusable functionality for working with CUDA or NVIDIA APIs. It is intended for package developers, and does not provide concrete application functionality.

Usage

Availability

To check if a CUDA GPU is available, CUDAapi provides and exports the has_cuda and has_cuda_gpu functions. These functions are useful to query whether you will be able to import a package that requires CUDA to be available, such as CuArrays.jl (CUDAapi.jl itself will always import without an error):

using CUDAapi # this will NEVER fail
if has_cuda()
    try
        using CuArrays # we have CUDA, so this should not fail
    catch ex
        # something is wrong with the user's set-up (or there's a bug in CuArrays)
        @warn "CUDA is installed, but CuArrays.jl fails to load" exception=(ex,catch_backtrace())
    end
end

Discovery

The file src/discovery.jl defines helper methods for discovering the NVIDIA driver and CUDA toolkit, as well as some more generic methods to find libraries and binaries relative to, e.g., the location of the driver or toolkit.

Compatibility

The file src/compatibility.jl contains hard-coded databases with software and hardware compatibility information that cannot be queried from APIs.

Maintenance

CUDA version update

When a new version of CUDA is released, CUDAapi.jl needs to be updated accordingly:

  • discovery.jl: update the cuda_versions dictionary
  • compatibility.jl: update each _db variable (refer to the comments for more info)
  • travis.linux and travis.osx: provide a link to the installers
  • appveyor.ps1: provide a link to the installer, and list the components that need to be installed
  • travis.yml and appveyor.yml: add the version to the CI rosters

GCC version update

Update the gcc_major_versions and gcc_minor_versions ranges in discovery.jl to cover the new version.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.