Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

CUDAMeasureQCP.cu File Reference

CUDA Quaternion Characteristic Polynomial calculation. More...

#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


Detailed Description

CUDA Quaternion Characteristic Polynomial calculation.

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.


Define Documentation

#define RESTRICT   __restrict__
 

Definition at line 45 of file CUDAMeasureQCP.cu.

Referenced by vmd_qcp_innerprod_soa_blockperpair, and vmd_qcp_innerprod_soa_devicewide.


Typedef Documentation

typedef int fio_fd
 

Definition at line 83 of file CUDAMeasureQCP.cu.

Referenced by gpu_ooc_bench, and qcp_soa_gpu_ooc.


Function Documentation

template<typename T>
__inline__ __device__ T block_sum_reduction   v
 

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.

int idx2sub_tril long    N,
long    ind,
long *    J,
long *    I
[static]
 

Definition at line 497 of file CUDAMeasureQCP.cu.

void* measure_rmsdmat_qcp_thread void *    voidparms [static]
 

Definition at line 524 of file CUDAMeasureQCP.cu.

References gpuqcprmsdthreadparms::crds, wkf_tasktile_struct::end, FastCalcRMSDAndRotation, gpuqcprmsdthreadparms::first, gpuqcprmsdthreadparms::framecrdsz, idx2sub_tril, InnerProductSOA, gpuqcprmsdthreadparms::last, NULL, gpuqcprmsdthreadparms::rmsdmat, gpuqcprmsdthreadparms::sel, AtomSel::selected, wkf_tasktile_struct::start, gpuqcprmsdthreadparms::step, WKF_SCHED_DONE, wkf_threadlaunch_next_tile, wkf_threadpool_worker_getdata, and wkf_threadpool_worker_getid.

Referenced by qcp_soa_gpu.

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
 

Definition at line 591 of file CUDAMeasureQCP.cu.

References gpuqcprmsdthreadparms::crds, wkf_tasktile_struct::end, FastCalcRMSDAndRotation, gpuqcprmsdthreadparms::first, gpuqcprmsdthreadparms::framecrdsz, InnerProductSOA, gpuqcprmsdthreadparms::last, measure_rmsdmat_qcp_thread, NULL, gpuqcprmsdthreadparms::padcnt, gpuqcprmsdthreadparms::rmsdmat, gpuqcprmsdthreadparms::sel, AtomSel::selected, wkf_tasktile_struct::start, gpuqcprmsdthreadparms::step, wkf_threadpool_launch, and wkf_threadpool_sched_dynamic.

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
 

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.

__global__ void vmd_float3_aos_to_soa int    natoms,
float3 *    xyz,
float *    crdx,
float *    crdy,
float *    crdz
[static]
 

Definition at line 157 of file CUDAMeasureQCP.cu.

__global__ void vmd_float3_aos_to_soa_selected int    natoms,
int *    idxmap,
float3 *    xyz,
float *    crdx,
float *    crdy,
float *    crdz
[static]
 

Definition at line 175 of file CUDAMeasureQCP.cu.

int* vmd_gpu_selection_indexlist const AtomSel   sel
 

Definition at line 192 of file CUDAMeasureQCP.cu.

References AtomSel::firstsel, AtomSel::lastsel, NULL, AtomSel::on, and AtomSel::selected.

__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
[static]
 

Definition at line 388 of file CUDAMeasureQCP.cu.

References block_sum_reduction, NULL, and RESTRICT.

__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
[static]
 

Definition at line 231 of file CUDAMeasureQCP.cu.

References block_sum_reduction, glob_block_count, NULL, and RESTRICT.

template<typename T>
__inline__ __device__ T warp_sum_reduction   v
 

Definition at line 109 of file CUDAMeasureQCP.cu.

Referenced by block_sum_reduction.


Variable Documentation

__device__ unsigned int glob_block_count = 0
 

Definition at line 102 of file CUDAMeasureQCP.cu.

Referenced by vmd_qcp_innerprod_soa_devicewide.


Generated on Thu Mar 28 02:44:35 2024 for VMD (current) by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002