|
|
| colvarproxy_gpu () |
| | Constructor.
|
| |
|
bool | has_gpu_support () const |
| | Whether the proxy supports GPU.
|
| |
|
std::string | gpu_name () const |
| | Get the GPU name.
|
| |
|
std::string | gpu_bus_id () const |
| | Get the GPU PCI bus ID.
|
| |
|
int | gpu_device_id () const |
| | Get the GPU device number.
|
| |
|
std::string | gpu_platform () const |
| | Get the GPU platform (CUDA, HIP or SYCL)
|
| |
|
int | gpu_warp_size () const |
| | CUDA warp size or HIP wave front size.
|
| |
|
virtual cudaStream_t | get_default_stream () |
| | Get the default CUDA stream from the proxy.
|
| |
|
int | init_gpu () |
| | Initialize the GPU data (called by colvarproxy::setup)
|
| |
|
cudaEvent_t | get_event (event_type type) const |
| | Get the default CUDA event from the proxy.
|
| |
| template<typename T > |
| int | allocate_host (T **pp, const size_t len) |
| | Template function to allocate host-pinned memory. More...
|
| |
| template<typename T > |
| int | deallocate_host (T **pp) |
| | Template function to deallocate host-pinned memory. More...
|
| |
| template<typename T > |
| int | allocate_device (T **pp, const size_t len) |
| | Template function to allocate device memory. More...
|
| |
| template<typename T > |
| int | reallocate_device (T **pp, const size_t len) |
| | Template function to reallocate device memory. More...
|
| |
| template<typename T > |
| int | reallocate_host (T **pp, const size_t len) |
| | Template function to reallocate host-pinned memory. More...
|
| |
| template<typename T > |
| int | allocate_device_async (T **pp, const size_t len, cudaStream_t stream) |
| | Template function to allocate device memory asynchronously. More...
|
| |
| template<typename T > |
| int | deallocate_device (T **pp) |
| | Template function to deallocate device memory. More...
|
| |
| template<typename T > |
| int | deallocate_device_async (T **pp, cudaStream_t stream) |
| | Template function to deallocate device memory asynchronously. More...
|
| |
| template<typename T > |
| int | clear_device_array (T *data, const size_t ndata) |
| | Template function to clear a device array to zero. More...
|
| |
| template<typename T > |
| int | clear_device_array_async (T *data, const size_t ndata, cudaStream_t stream) |
| | Template function to clear a device array to zero asynchronously. More...
|
| |
| template<typename T > |
| int | copy_HtoD (const T *h_array, T *d_array, size_t array_len) |
| | Template function to copy data from host to device. More...
|
| |
| template<typename T > |
| int | copy_HtoD_async (const T *h_array, T *d_array, size_t array_len, cudaStream_t stream) |
| | Template function to copy data from host to device asynchronously. More...
|
| |
| template<typename T > |
| int | copy_DtoH (const T *d_array, T *h_array, size_t array_len) |
| | Template function to copy data from device to host. More...
|
| |
| template<typename T > |
| int | copy_DtoH_async (const T *d_array, T *h_array, size_t array_len, cudaStream_t stream) |
| | Template function to copy data from device to host asynchronously. More...
|
| |
| template<typename T > |
| int | copy_DtoD (const T *d_src, T *d_dst, size_t array_len) |
| | Template function to copy data from device to device. More...
|
| |
| template<typename T > |
| int | copy_DtoD_async (const T *d_src, T *d_dst, size_t array_len, cudaStream_t stream) |
| | Template function to copy data from device to device asynchronously. More...
|
| |
|
virtual | ~colvarproxy_gpu () |
| | Destructor.
|
| |
|
|
virtual int | allocate_host_T (void **pp, const size_t len, const size_t sizeofT) |
| | Memory management and data transfer implementations.
|
| |
|
virtual int | deallocate_host_T (void **pp) |
| |
|
virtual int | allocate_device_T (void **pp, const size_t len, const size_t sizeofT) |
| |
|
virtual int | deallocate_device_T (void **pp) |
| |
|
virtual int | clear_device_array_T (void *data, const size_t ndata, const size_t sizeofT) |
| |
|
virtual int | allocate_device_T_async (void **pp, const size_t len, const size_t sizeofT, cudaStream_t stream) |
| |
|
virtual int | deallocate_device_T_async (void **pp, cudaStream_t stream) |
| |
|
virtual int | clear_device_array_T_async (void *data, const size_t ndata, const size_t sizeofT, cudaStream_t stream) |
| |
|
virtual int | copy_HtoD_T (const void *h_array, void *d_array, size_t array_len, const size_t sizeofT) |
| |
|
virtual int | copy_HtoD_T_async (const void *h_array, void *d_array, size_t array_len, const size_t sizeofT, cudaStream_t stream) |
| |
|
virtual int | copy_DtoH_T (const void *d_array, void *h_array, size_t array_len, const size_t sizeofT) |
| |
|
virtual int | copy_DtoH_T_async (const void *d_array, void *h_array, size_t array_len, const size_t sizeofT, cudaStream_t stream) |
| |
|
virtual int | copy_DtoD_T (const void *d_src, void *d_dst, size_t array_len, const size_t sizeofT) |
| |
|
virtual int | copy_DtoD_T_async (const void *d_src, void *d_dst, size_t array_len, const size_t sizeofT, cudaStream_t stream) |
| |
|
|
virtual float * | proxy_atoms_masses_gpu_float () |
| | Functions to get device pointers for atom properties This functions should be overridden in derived proxy classes that manage actual GPU memory.
|
| |
|
virtual float * | proxy_atoms_charges_gpu_float () |
| |
|
virtual cvm::real * | proxy_atoms_masses_gpu () |
| |
|
virtual cvm::real * | proxy_atoms_charges_gpu () |
| |
|
virtual cvm::real * | proxy_atoms_positions_gpu () |
| |
|
virtual cvm::real * | proxy_atoms_total_forces_gpu () |
| |
|
virtual cvm::real * | proxy_atoms_new_colvar_forces_gpu () |
| |
Class for managing GPU memory allocation and data transfer.