CuVec

Unifying Python/C++/CUDA memory: Python buffered array ↔️ `std::vector` ↔️ CUDA managed memory

OTHER License

Downloads
694
Stars
80
Committers
2

Bot releases are visible (Hide)

CuVec - CuVec v2.7.2 beta

Published by amypad-bot over 3 years ago

  • fix clang builds (#11)
  • fix builds without SWIG (#11)
  • optimal test thread spawning
CuVec - CuVec v2.7.1 beta

Published by amypad-bot over 3 years ago

  • fix CMake export target (#10)
  • document SWIG usage
CuVec - CuVec v2.7.0 beta

Published by amypad-bot over 3 years ago

  • make CUDA optional (#9)
    • make __half/e optional
  • add CPU versions of examples
  • add & update tests
CuVec - CuVec v2.6.0 beta

Published by amypad-bot over 3 years ago

  • major SWIG updates (#8)
    • expose SwigCuVec<T>
    • separate core (swvec.i) & example (example_swig.i) modules
    • update tests & examples
  • update & tidy performance tests
CuVec - CuVec v2.5.0 beta

Published by amypad-bot over 3 years ago

  • add SWIG support via cuvec.i (#7)
  • add & document example_swig
  • improve & document example_mod
  • fix external #includes
    • multiple definitions
    • missing cuda runtime header
    • use of static & templates
    • namespace clashes
  • statically link CUDA libraries
  • use macros to reduce code duplication
  • add and fix tests
  • add performance checks
  • misc code tidy
CuVec - CuVec v2.4.0 beta

Published by amypad-bot over 3 years ago

  • add __cuda_array_interface__ (#4)
  • add tests
  • update documentation
CuVec - CuVec v2.3.1 beta

Published by amypad-bot over 3 years ago

  • fix asarray not copying on ndarray.view(CuVec) (#2)
  • fix potential name clashes with namespaces
  • consistent name capitalisation in documentation
CuVec - cuvec v2.3.0 beta

Published by amypad-bot over 3 years ago

  • add half-precision (fp16/float16/__half/'e') (#1)
  • fix unneeded asarray memcopy on raw objects
  • fix external #include "cuvec.cuh"
    • remove unneeded cuhelpers
  • update supported typecodes
  • and external module example
  • add performance test
  • add asarray tests
CuVec - cuvec v2.2.0 beta

Published by amypad-bot over 3 years ago

  • add proper asarray equivalent
    • add tests
  • minor tidy
CuVec - cuvec v2.1.2 beta

Published by amypad-bot over 3 years ago

CuVec - cuvec v2.1.1 beta

Published by amypad-bot over 3 years ago

  • catch exceptions
  • update __init__ keywords
  • build updates
    • add CUVEC_DEBUG flag (default: OFF)
    • use CMake add_compile_definitions
  • test updates
    • increase verbosity
  • documentation updates
    • add contributing notes
      • using editable install & pytest
  • misc tidy
    • clean asarray implementation
CuVec - cuvec v2.1.0 beta

Published by amypad-bot almost 4 years ago

  • add asarray convenience for wrapping external libraries
  • minor code tidy
CuVec - cuvec v2.0.1 beta

Published by amypad-bot almost 4 years ago

  • add external project usage documentation
  • add more accurate build warning message
CuVec - cuvec v2.0.0 beta

Published by amypad-bot almost 4 years ago

  • add seamless numpy-like functionality
    • rename cuvec.from_numpy() => cuvec.copy()
    • make cuvec.zeros() and cuvec.copy() return numpy.ndarray-like objects
  • fix potential installation errors
  • add complete documentation
  • add citation information
CuVec - cuvec v0.1.0 alpha

Published by casperdcl almost 4 years ago

Initial proof of concept.

CuVec - cuvec v1.0.0 beta

Published by amypad-bot almost 4 years ago

Unifying Python/C++/CUDA memory: Python buffered array <-> C++11 std::vector <-> CUDA managed memory.

  • Provides creation functions
    • Python object
      • zeros
      • from_numpy
    • C++ vector
      • CuVec<T> with identical interface as std::vector<T>
    • CPython API (castable to PyObject *)
      • PyCuVec<T> *PyCuVec_zeros(std::vector<Py_ssize_t> shape);
      • PyCuVec<T> *PyCuVec_zeros_like(PyCuVec<T> *other);
      • PyCuVec<T> *PyCuVec_deepcopy(PyCuVec<T> *other);
  • Quick start documentation
  • 100% test coverage
  • Allows CUDA-free installation for sdist

Requires a C++11 compiler, CUDA compiler, and an NVIDIA GPU with compute capability 3.5 or greater.
Python functionality requires Python 3.6 or greater.