Git Product home page Git Product logo

arrayfire's Issues

Add additional device functions

void af::sync(int device = -1);
int af::getDevice();

af_err af_get_device(const int *device);
af_err af_sync(const int device);

Make cuda compute architecture a cmake option.

The following lines of cuda/CMakeLists.txt depend on the architecture

Line 33:

FILE(GLOB cuda_ptx "ptx/PTX64/sm_20/*.ptx")

Line 55:

CUDA_ADD_LIBRARY(afcuda SHARED ${cuda_src} OPTIONS "-arch=sm_20")

Linear Algebra functions

Possible libraries for CPU:

  • netlib's LAPACK
  • netlib's PLASMA
  • Intel's MKL

Possible libraries for CUDA:

  • MAGMA
  • CULA

Possible libraries for OpenCL:

  • clMAGMA
  • ViennaCL

Reorganize header files

  • Move constant / randu / randn to data.h
  • Move reductions / scan / sort etc into algorithm.h
  • Move approx1, approx2 to signal.h

Changes and additions to convolve API

  • Change separable convolution to be convolve instead of convolve2
  • Add a new function convolve that calls the appropriate function based on number of dimensions.

Add af/compatible.h

Write inline wrappers for the following to not break older API

- deviceset --> setDevice
- devicecount --> getDeviceCount
- deviceget --> getDevice
- loadimage --> loadImage
- saveimage --> saveImage

Unfinished functions in C++ wrapper

#if 0 // FIXME: Add these functions to C++ wrapper                                                                                                                                                                   
        void unlock() const;

        template<typename T> T scalar() const;
        template<typename T> T* device() const;

        template<typename T> static T* alloc(size_t elements);
        static void *alloc(size_t elements, af_dtype type);

        template<typename T> static T* pinned(size_t elements);
        static void *pinned(size_t elements, af_dtype type);

        static void free(const void *);
#endif

Make af_print prettier

  • Fixed width formatting
  • Make sure positive and negative numbers have same width
  • Display dims and strides only in debug mode.

Make arrayfire_data a subomdule

  • Make arrayfire_data a submodule
  • Move test data directory from build/data/src/arrayfire_data to build/test/arrayfire_data.
  • Change TEST_DIR to be relative

Sort the OpenCL devices in a consistent manner.

Some options to consider:

  • Sort based on platform
  • Sort based on type (GPU, Accelerator, CPU)
  • Hardcoded order of preference ?
  • Sort based on amount of memory available
  • Sort based on OpenCL compute capability

Build on OSX

Fix compile errors and get it to build on OSX.

Add additional cpp interfaces for moddims

Adding below new interfaces

  • moddims(af::array const& input, af::dim4 const& dims)
  • moddims(af::array const& input, dim_type d0, dim_type d1=1, dim_type d2=1, dim_type d3=1)

CUDA randu is broken.

CUDA random number generator values are not same from run to run. Expected behavior is that it generates same values across runs.

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.