Quantitative Analysis
Parallel Processing
Numerical Analysis
C++ Multithreading
Python for Excel
Python Utilities

I. Introduction into GPU programming.
II. Exception safe dynamic memory handling in Cuda project.
1. Allocating and deallocating device memory. ots::cuda::memory::Device class.
2. Accessing device memory. ots::cuda::memory::Host class.
3. Crossing host/device boundary. ots::cuda::memory::DeviceHandler class.
4. Accessing memory in __device__ code. ots::cuda::memory::Block class.
5. Handling two dimensional memory blocks. Do not use cudaMallocPitch.
6. Allocation of memory from Host scope.
7. Tagged data. Compiler assisted data verification.
III. Calculation of partial sums in parallel.
IV. Manipulation of piecewise polynomial functions in parallel.
V. Manipulation of localized piecewise polynomial functions in parallel.
Downloads. Index. Contents.

Allocation of memory from Host scope.

ontrol of memory allocation does not have to originate from Regular scope. For example, we might need to allocate temporary memory. It may be inconvenient to pass it from the Regular scope. The classes Host2 and Device2 handle such possibility. These classes are implemented in the header file memory2.hpp.

The classes Host2 and Device2 are designed to live in Host scope. These have similar interface to the pair Host and Device. There are several differences. Host2 and Device2 are not copyable and do not have dependencies on std and boost libraries. Device2 may be initialized with an instance of DeviceHandler. In such situation only, the Device2 does not maintain ownership of the referenced memory block.

Downloads. Index. Contents.

Copyright 2007