#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <cuda.h>
#include "molfile_plugin.h"
#include "Inform.h"
#include "utilities.h"
#include "WKFThreads.h"
#include "WKFUtils.h"
#include "CUDAKernels.h"
#include "Measure.h"
Go to the source code of this file.
Compounds | |
struct | gpuqcprmsdthreadparms |
Defines | |
#define | RESTRICT __restrict__ |
Typedefs | |
typedef int | fio_fd |
Functions | |
template<typename T> __inline__ __device__ T | warp_sum_reduction (T v) |
template<typename T> __inline__ __device__ T | block_sum_reduction (T v) |
__global__ void | vmd_float3_aos_to_soa (int natoms, float3 *xyz, float *crdx, float *crdy, float *crdz) |
__global__ void | vmd_float3_aos_to_soa_selected (int natoms, int *idxmap, float3 *xyz, float *crdx, float *crdy, float *crdz) |
int * | vmd_gpu_selection_indexlist (const AtomSel *sel) |
__global__ void | vmd_qcp_innerprod_soa_devicewide (double *pr, const float *RESTRICT crdx1, const float *RESTRICT crdy1, const float *RESTRICT crdz1, const float *RESTRICT crdx2, const float *RESTRICT crdy2, const float *RESTRICT crdz2, const int natoms, const float *RESTRICT weight) |
__global__ void | vmd_qcp_innerprod_soa_blockperpair (double *results, const float *RESTRICT crdx1, const float *RESTRICT crdy1, const float *RESTRICT crdz1, const float *RESTRICT crdx2, const float *RESTRICT crdy2, const float *RESTRICT crdz2, const int natoms, const float *RESTRICT weight, const int num_structs) |
int | idx2sub_tril (long N, long ind, long *J, long *I) |
void * | measure_rmsdmat_qcp_thread (void *voidparms) |
int | qcp_soa_gpu (wkf_threadpool_t *devpool, const AtomSel *sel, float *crds, int framecrdsz, int padcnt, int first, int last, int step, int framecount, float *rmsdmat) |
int | qcp_soa_gpu_ooc (wkf_threadpool_t *devpool, int nfiles, const char **trjfileset, const AtomSel *sel, int first, int last, int step, float *rmsdmat) |
Variables | |
__device__ unsigned int | glob_block_count = 0 |
Compute RMSD values for unaligned structures without actually performing the alginment. This is particularly useful for computing large dissimilarity matrices required for trajectory clustering analysis.
Definition in file CUDAMeasureQCP.cu.
|
Definition at line 45 of file CUDAMeasureQCP.cu. Referenced by vmd_qcp_innerprod_soa_blockperpair, and vmd_qcp_innerprod_soa_devicewide. |
|
Definition at line 83 of file CUDAMeasureQCP.cu. Referenced by gpu_ooc_bench, and qcp_soa_gpu_ooc. |
|
Definition at line 126 of file CUDAMeasureQCP.cu. References warp_sum_reduction. Referenced by vmd_qcp_innerprod_soa_blockperpair, and vmd_qcp_innerprod_soa_devicewide. |
|
Definition at line 497 of file CUDAMeasureQCP.cu. |
|
|
|
Definition at line 1050 of file CUDAMeasureQCP.cu. References wkf_tasktile_struct::end, fio_fd, NULL, AtomSel::num_atoms, wkf_tasktile_struct::start, wkf_threadpool_create, wkf_threadpool_destroy, wkf_threadpool_launch, wkf_threadpool_sched_dynamic, wkf_timer_create, wkf_timer_start, wkf_timer_stop, wkf_timer_time, and wkf_timerhandle. |
|
Definition at line 157 of file CUDAMeasureQCP.cu. |
|
Definition at line 175 of file CUDAMeasureQCP.cu. |
|
Definition at line 192 of file CUDAMeasureQCP.cu. References AtomSel::firstsel, AtomSel::lastsel, NULL, AtomSel::on, and AtomSel::selected. |
|
Definition at line 388 of file CUDAMeasureQCP.cu. References block_sum_reduction, NULL, and RESTRICT. |
|
Definition at line 231 of file CUDAMeasureQCP.cu. References block_sum_reduction, glob_block_count, NULL, and RESTRICT. |
|
Definition at line 109 of file CUDAMeasureQCP.cu. Referenced by block_sum_reduction. |
|
Definition at line 102 of file CUDAMeasureQCP.cu. Referenced by vmd_qcp_innerprod_soa_devicewide. |