Giter Site home page Giter Site logo

genvectorx's Introduction

GenVectorX

Extented GenVector library for multi-target execution.

cmake configuration

CUDA

A basic CUDA configuration looks like this:

cmake .. -Dcuda=ON -DCMAKE_CUDA_HOST_COMPILER=/usr/bin/g++ -DCMAKE_CUDA_COMPILER=/path/to/cuda/bin/nvcc -DCMAKE_CUDA_ARCHITECTURES=xx -DCMAKE_CUDA_FLAGS="-arch=sm_XX", where `XX` indicates the value of target CUDA capability.  

SYCL

Memory management

SYCL offers different memory management strategies. Here, we implement buffers+accessors or device pointers. Default memory management is handled with device pointers. In order to enable buffers+accessors, it is sufficient to set -Dsycl_buffers=ON in the cmake configuration.

AdaptiveCpp

A basic SYCL configuration with AdaptiveCpp looks like this:

cmake .. -Dadaptivecpp=ON -DAdaptiveCpp_DIR=/path/to/AdaptiveCpp/install/lib/cmake/AdaptiveCpp -DACPP_TARGETS="<targets>"  

AdaptiveCpp targets specification defines which compilation flows AdaptiveCpp should enable, and which devices from a compilation flow AdaptiveCpp should target during compilation. A CUDA example lookd like this: -DACPP_TARGETS="cuda:sm_86". A HIP exaple looks like this: -DACPP_TARGETS="hip:gfx90a"

oneAPI

A basic SYCL configuration with oneAPI targeting CUDA backends looks like this:

cmake ..  -Doneapi=ON -Dsyclcuda=ON -DCMAKE_CUDA_ARCHITECTURES=XX -DCUDA_TOOLKIT_ROOT_DIR=/path/to/cuda/

where XX indicates the value of target CUDA capability.

A basic SYCL configuration with oneAPI targeting HIP backends looks like this:

cmake ..  -Doneapi=ON -Dsyclamd=ON -DCMAKE_OFFLOAD_ARCHITECTURES=gfxXXX 

where XXX is set accordingly to the AMD GPU model.

Testing

In order to compile test targets, set -Dtesting=ON in the cmake configuration. Set -Dsingle_precision=ON for compiling single precision test targets.

In order to enable time measurements (and their print to stdout), set -Dtiming=ON in the cmake configuration.

genvectorx's People

Contributors

mdessole avatar axel-naumann avatar

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.