NAMD: add AVXTILES support (#37040)
This commit is contained in:
		
				
					committed by
					
						
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							a102950d67
						
					
				
				
					commit
					f057d7154b
				
			@@ -22,6 +22,7 @@ class Namd(MakefilePackage, CudaPackage):
 | 
				
			|||||||
    manual_download = True
 | 
					    manual_download = True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    version("master", branch="master")
 | 
					    version("master", branch="master")
 | 
				
			||||||
 | 
					    version("2.15a2", sha256="8748cbaa93fc480f92fc263d9323e55bce6623fc693dbfd4a40f59b92669713e")
 | 
				
			||||||
    version("2.15a1", branch="master", tag="release-2-15-alpha-1")
 | 
					    version("2.15a1", branch="master", tag="release-2-15-alpha-1")
 | 
				
			||||||
    # Same as above, but lets you use a local file instead of git
 | 
					    # Same as above, but lets you use a local file instead of git
 | 
				
			||||||
    version(
 | 
					    version(
 | 
				
			||||||
@@ -49,6 +50,8 @@ class Namd(MakefilePackage, CudaPackage):
 | 
				
			|||||||
        description="Enables Tcl and/or python interface",
 | 
					        description="Enables Tcl and/or python interface",
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    variant("avxtiles", when="target=x86_64_v4:", default=False, description="Enable avxtiles")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # init_tcl_pointers() declaration and implementation are inconsistent
 | 
					    # init_tcl_pointers() declaration and implementation are inconsistent
 | 
				
			||||||
    # "src/colvarproxy_namd.C", line 482: error: inherited member is not
 | 
					    # "src/colvarproxy_namd.C", line 482: error: inherited member is not
 | 
				
			||||||
    # allowed
 | 
					    # allowed
 | 
				
			||||||
@@ -73,6 +76,8 @@ class Namd(MakefilePackage, CudaPackage):
 | 
				
			|||||||
    depends_on("tcl", when="interface=python")
 | 
					    depends_on("tcl", when="interface=python")
 | 
				
			||||||
    depends_on("python", when="interface=python")
 | 
					    depends_on("python", when="interface=python")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    conflicts("+avxtiles", when="@:2.14,3:", msg="AVXTiles algorithm requires NAMD 2.15")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # https://www.ks.uiuc.edu/Research/namd/2.12/features.html
 | 
					    # https://www.ks.uiuc.edu/Research/namd/2.12/features.html
 | 
				
			||||||
    # https://www.ks.uiuc.edu/Research/namd/2.13/features.html
 | 
					    # https://www.ks.uiuc.edu/Research/namd/2.13/features.html
 | 
				
			||||||
    # https://www.ks.uiuc.edu/Research/namd/2.14/features.html
 | 
					    # https://www.ks.uiuc.edu/Research/namd/2.14/features.html
 | 
				
			||||||
@@ -127,6 +132,7 @@ def _edit_arch_generic(self, spec, prefix):
 | 
				
			|||||||
                                        -ffast-math -lpthread "
 | 
					                                        -ffast-math -lpthread "
 | 
				
			||||||
                        + archopt,
 | 
					                        + archopt,
 | 
				
			||||||
                        "intel": "-O2 -ip -qopenmp-simd" + archopt,
 | 
					                        "intel": "-O2 -ip -qopenmp-simd" + archopt,
 | 
				
			||||||
 | 
					                        "clang": m64 + "-O3 -ffast-math -fopenmp " + archopt,
 | 
				
			||||||
                        "aocc": m64
 | 
					                        "aocc": m64
 | 
				
			||||||
                        + "-O3 -ffp-contract=fast -ffast-math \
 | 
					                        + "-O3 -ffp-contract=fast -ffast-math \
 | 
				
			||||||
                                        -fopenmp "
 | 
					                                        -fopenmp "
 | 
				
			||||||
@@ -139,12 +145,19 @@ def _edit_arch_generic(self, spec, prefix):
 | 
				
			|||||||
                                        -ffast-math -lpthread "
 | 
					                                        -ffast-math -lpthread "
 | 
				
			||||||
                        + archopt,
 | 
					                        + archopt,
 | 
				
			||||||
                        "intel": "-O2 -ip " + archopt,
 | 
					                        "intel": "-O2 -ip " + archopt,
 | 
				
			||||||
 | 
					                        "clang": m64 + "-O3 -ffast-math -fopenmp " + archopt,
 | 
				
			||||||
                        "aocc": m64
 | 
					                        "aocc": m64
 | 
				
			||||||
                        + "-O3 -ffp-contract=fast \
 | 
					                        + "-O3 -ffp-contract=fast \
 | 
				
			||||||
                                        -ffast-math "
 | 
					                                        -ffast-math "
 | 
				
			||||||
                        + archopt,
 | 
					                        + archopt,
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if self.spec.satisfies("+avxtiles"):
 | 
				
			||||||
 | 
					                    optims_opts["aocc"] += " -DNAMD_AVXTILES"
 | 
				
			||||||
 | 
					                    optims_opts["clang"] += " -DNAMD_AVXTILES"
 | 
				
			||||||
 | 
					                    optims_opts["gcc"] += " -DNAMD_AVXTILES"
 | 
				
			||||||
 | 
					                    optims_opts["intel"] += " -DNAMD_AVXTILES"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                optim_opts = (
 | 
					                optim_opts = (
 | 
				
			||||||
                    optims_opts[self.compiler.name] if self.compiler.name in optims_opts else ""
 | 
					                    optims_opts[self.compiler.name] if self.compiler.name in optims_opts else ""
 | 
				
			||||||
                )
 | 
					                )
 | 
				
			||||||
@@ -265,6 +278,7 @@ def install(self, spec, prefix):
 | 
				
			|||||||
        with working_dir(self.build_directory):
 | 
					        with working_dir(self.build_directory):
 | 
				
			||||||
            mkdirp(prefix.bin)
 | 
					            mkdirp(prefix.bin)
 | 
				
			||||||
            install("namd2", prefix.bin)
 | 
					            install("namd2", prefix.bin)
 | 
				
			||||||
 | 
					            install("psfgen", prefix.bin)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            # I'm not sure this is a good idea or if an autoload of the charm
 | 
					            # I'm not sure this is a good idea or if an autoload of the charm
 | 
				
			||||||
            # module would not be better.
 | 
					            # module would not be better.
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user