hdiff output

r32619/key.f90 2017-05-26 12:30:30.776958824 +0100 r32618/key.f90 2017-05-26 12:30:31.216964562 +0100
102:      &        REDOK, REDOFRAC, D1INIT, D2INIT, REDOE1, REDOE2, RPBETA, REPCON, PFORCE, &102:      &        REDOK, REDOFRAC, D1INIT, D2INIT, REDOE1, REDOE2, RPBETA, REPCON, PFORCE, &
103:      &        CPCONSTRAINTTOL, CPCONSTRAINTDEL, CPCONSTRAINTREP, CPCONSTRAINREPCUT, CPCONFRAC, &103:      &        CPCONSTRAINTTOL, CPCONSTRAINTDEL, CPCONSTRAINTREP, CPCONSTRAINREPCUT, CPCONFRAC, &
104:      &        INTLJTOL, INTLJDEL, INTLJEPS, IMSEPMIN, IMSEPMAX, TRAPK, MINOVERLAP, &104:      &        INTLJTOL, INTLJDEL, INTLJEPS, IMSEPMIN, IMSEPMAX, TRAPK, MINOVERLAP, &
105:      &        INTFREEZETOL, LOCALPERMCUT, LOCALPERMCUT2, LOCALPERMCUTINC, CHECKREPCUTOFF, CONCUTABS, &105:      &        INTFREEZETOL, LOCALPERMCUT, LOCALPERMCUT2, LOCALPERMCUTINC, CHECKREPCUTOFF, CONCUTABS, &
106:      &        CONCUTFRAC, ENDNUMHESSDELTA, DNEBEFRAC, QCHEMSCALE, KAA, SIGMAAA, QUIPATOMMASS, TEMPERATURE1, &106:      &        CONCUTFRAC, ENDNUMHESSDELTA, DNEBEFRAC, QCHEMSCALE, KAA, SIGMAAA, QUIPATOMMASS, TEMPERATURE1, &
107:      &        DISTORTINST,DELTAINST,MOLPROSCALE,COVER,STTSRMSCONV,LAN_DIST,LANCONV,LANFACTOR, &107:      &        DISTORTINST,DELTAINST,MOLPROSCALE,COVER,STTSRMSCONV,LAN_DIST,LANCONV,LANFACTOR, &
108:      &        STOCKEXP, JPARAM, MCPATHTEMP, MCPATHDMAX, MCPATHSTEP, MCPATHACCRATIO, BIASFAC, &108:      &        STOCKEXP, JPARAM, MCPATHTEMP, MCPATHDMAX, MCPATHSTEP, MCPATHACCRATIO, BIASFAC, &
109:      &        MCADDDEV, MCPATHQMIN, MCPATHQMAX, RPHQMIN, RPHQMAX, RPHTEMP, TWISTF, TWISTREF, MCPATHADDREF, &109:      &        MCADDDEV, MCPATHQMIN, MCPATHQMAX, RPHQMIN, RPHQMAX, RPHTEMP, TWISTF, TWISTREF, MCPATHADDREF, &
110:      &        MCPATHGWS, MCPATHGWQ, MCPATHNEGLECT, MCPATHTOL, FRAMESDIFF,TMRATIO, INTMINFAC, MLPLAMBDA, COLL_TOL, KLIM, SCA, &110:      &        MCPATHGWS, MCPATHGWQ, MCPATHNEGLECT, MCPATHTOL, FRAMESDIFF,TMRATIO, INTMINFAC, MLPLAMBDA, COLL_TOL, KLIM, SCA, &
111:      &        NEBMAXERISE, GDSQ, FLATEDIFF, QCIADDREPCUT, QCIADDREPEPS, QCIRADSHIFT, INTCONCUT, MLQLAMBDA, FRQCONV, FRQCONV2, &111:      &        NEBMAXERISE, GDSQ, FLATEDIFF, QCIADDREPCUT, QCIADDREPEPS, QCIRADSHIFT, INTCONCUT, MLQLAMBDA, FRQCONV, FRQCONV2, &
112:      &        TANHFAC, LJADDCUTOFF,LJADDREFNORM,MAXIMFACTOR112:      &        TANHFAC, LJADDCUTOFF,LJADDREFNORM
113: 113: 
114: !     sf344114: !     sf344
115:       DOUBLE PRECISION :: PCUTOFF,PYA11(3),PYA21(3),PYA12(3),PYA22(3),PEPSILON1(3),PSCALEFAC1(2),PSCALEFAC2(2), &115:       DOUBLE PRECISION :: PCUTOFF,PYA11(3),PYA21(3),PYA12(3),PYA22(3),PEPSILON1(3),PSCALEFAC1(2),PSCALEFAC2(2), &
116:      &                     PEPSILONATTR(2),PSIGMAATTR(2), PYOVERLAPTHRESH, LJSITECOORDS(3), LJGSITESIGMA, LJGSITEEPS, &116:      &                     PEPSILONATTR(2),PSIGMAATTR(2), PYOVERLAPTHRESH, LJSITECOORDS(3), LJGSITESIGMA, LJGSITEEPS, &
117:      &                     PYLOCALSTEP(2),PYCFTHRESH,PYGRAVITYC1,PYGRAVITYC2,PERCCUT117:      &                     PYLOCALSTEP(2),PYCFTHRESH,PYGRAVITYC1,PYGRAVITYC2,PERCCUT
118:  118:  
119:       DOUBLE PRECISION, ALLOCATABLE :: PYADDEPS(:,:)119:       DOUBLE PRECISION, ALLOCATABLE :: PYADDEPS(:,:)
120:       LOGICAL, ALLOCATABLE :: uniaxarray(:)120:       LOGICAL, ALLOCATABLE :: uniaxarray(:)
121:       DOUBLE PRECISION, ALLOCATABLE :: PYADDREP(:,:), PYADDATT(:,:)121:       DOUBLE PRECISION, ALLOCATABLE :: PYADDREP(:,:), PYADDATT(:,:)
122:       DOUBLE PRECISION, ALLOCATABLE :: POINTSDECA(:), POINTSICOS(:)122:       DOUBLE PRECISION, ALLOCATABLE :: POINTSDECA(:), POINTSICOS(:)


r32619/setup_potential_cputogpu.cu 2017-05-26 12:30:30.560956010 +0100 r32618/setup_potential_cputogpu.cu 2017-05-26 12:30:31.000961747 +0100
  1: /**  1: svn: E195012: Unable to find repository location for 'svn+ssh://svn.ch.private.cam.ac.uk/groups/wales/trunk/CUDA/potential/setup_potential_cputogpu.cu' in revision 32618
  2:  * 
  3:  * File setup_potential_cputogpu.cu: Communicates with GMIN/OPTIM and calls the potential.  
  4:  * 
  5:  **/ 
  6:  
  7: #include <stdbool.h> 
  8: #include <iostream> 
  9:  
 10: #include "cost_function.h" 
 11: #include "potential.h" 
 12:  
 13: // Can call this function with any potential class.  
 14:         template <class P> 
 15: void setup(const size_t numDimensions, double *x, double *energy, double *gradients, P &potential) 
 16: { 
 17:         double *d_x;  // Coordinates on the GPU. 
 18:         double *d_fk; // Energy on the GPU. 
 19:         double *d_gk; // Gradient on the GPU. 
 20:  
 21:         CudaSafeCall( cudaMalloc(&d_x, numDimensions * sizeof(double)) ); 
 22:         CudaSafeCall( cudaMalloc(&d_fk, sizeof(double)) ); 
 23:         CudaSafeCall( cudaMalloc(&d_gk, numDimensions * sizeof(double)) ); 
 24:  
 25:         CudaSafeCall( cudaMemcpy(d_x, x, numDimensions * sizeof(double), cudaMemcpyHostToDevice) ); 
 26:  
 27:         // Perform the potential calculation. 
 28:         potential.computeEnergyAndGradient(d_x, d_fk, d_gk); 
 29:  
 30:         CudaSafeCall( cudaMemcpy(energy, d_fk, sizeof(double), cudaMemcpyDeviceToHost) ); 
 31:         CudaSafeCall( cudaMemcpy(gradients, d_gk, numDimensions * sizeof(double), cudaMemcpyDeviceToHost) ); 
 32:  
 33:         CudaSafeCall( cudaFree(d_x) ); 
 34:         CudaSafeCall( cudaFree(d_fk) ); 
 35:         CudaSafeCall( cudaFree(d_gk) ); 
 36: } 
 37:  
 38:  
 39:  
 40: extern "C" void setup_potential_cputogpu(int *n, double *x, double *energy, double *gradients, int *nAddTarget, double *ljAddRep,  
 41:                 double *ljAddAtt, char *cudaPot, _Bool *timeCuda, double *potTimeElapsed) 
 42: { 
 43:         const size_t numDimensions = *n; 
 44:  
 45:         const int nSecDiag = 0; 
 46:  
 47:         int nFreeze = 0; 
 48:  
 49:         const double aaConvThreshold = 0; 
 50:  
 51:         double coldFusionLim = -1.0e6; 
 52:  
 53:         bool shouldFreeze = false; 
 54:         bool isAaConvergence = false; 
 55:  
 56:         bool *isAtomFrozen = NULL; 
 57:  
 58:         // Rigid body framework not being used. 
 59:         bool isAtomisticNotRigid = true; 
 60:  
 61:         int nDegFreedom  = 0; 
 62:         int nRigidBody   = 0; 
 63:         int rigidMaxSite = 0; 
 64:  
 65:         int *nRigidSitesPerBody = NULL;  
 66:         int *rigidGroups        = NULL;  
 67:         double *sitesRigidBody  = NULL;  
 68:         int *rigidSingles       = NULL;  
 69:         double *rigidInverse    = NULL; 
 70:  
 71:         double *coords = NULL; 
 72:  
 73:         // This is first opened in GMIN main to ensure file contents overwritten only at beginning of new run. 
 74:         Printing debugPrinting("GPU_debug_out"); 
 75:         bool printDebug = false; 
 76:         if (printDebug) { 
 77:                 debugPrinting.setPrintingOn(); 
 78:         } 
 79:  
 80:         Timer timer_potential     ("GPU_potential"); 
 81:         timer_potential.setTimingOn(); 
 82:  
 83:         // Set up cuBLAS.  
 84:         Cublas cublas; 
 85:  
 86:         // L specifies the Lennard-Jones potential. 
 87:         if (*cudaPot == 'L') { 
 88:                 // Create an instance of the appropriate class for the potential, LjPotential. 
 89:                 LjPotential potential(debugPrinting, timer_potential, cublas, numDimensions, nDegFreedom, nRigidBody,  
 90:                                 rigidMaxSite, nRigidSitesPerBody, rigidGroups, sitesRigidBody, rigidSingles, rigidInverse,  
 91:                                 coords, nSecDiag, isAtomisticNotRigid, aaConvThreshold, coldFusionLim, shouldFreeze,  
 92:                                 isAtomFrozen, nFreeze, isAaConvergence, *nAddTarget, ljAddRep, ljAddAtt); 
 93:  
 94:                 setup<LjPotential>(numDimensions, x, energy, gradients, potential); 
 95:         } 
 96:         // A specifies the AMBER potential. 
 97:         else if (*cudaPot == 'A') { 
 98:                 AmberPotential potential(debugPrinting, timer_potential, cublas, numDimensions, nDegFreedom, nRigidBody,  
 99:                                 rigidMaxSite, nRigidSitesPerBody, rigidGroups, sitesRigidBody, rigidSingles, rigidInverse,  
100:                                 coords, nSecDiag, isAtomisticNotRigid, aaConvThreshold, coldFusionLim, shouldFreeze,  
101:                                 isAtomFrozen, nFreeze, isAaConvergence, *nAddTarget, ljAddRep, ljAddAtt); 
102:  
103:                 setup<AmberPotential>(numDimensions, x, energy, gradients, potential); 
104:         } 
105:         else { 
106:                 std::cerr << "The specified potential has not been recognised" << std::endl; 
107:                 exit(EXIT_FAILURE); 
108:         } 
109:  
110:         if (*timeCuda) { 
111:                 timer_potential.saveMeasurement(); 
112:         } 
113:  
114:         *potTimeElapsed = timer_potential.elapsed()/1000.0; 
115: } 


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0