Add oneMath
With support for MKL and CUDA enabled by default
This commit is contained in:
		
							parent
							
								
									4377ad3e46
								
							
						
					
					
						commit
						38d2425dfe
					
				| @ -24,6 +24,7 @@ let | ||||
|     intelPackages_2024 = final.intel-apt.hpckit_2024; | ||||
|     intelPackages_2025 = final.intel-apt.hpckit_2025; | ||||
|     intelPackages = final.intelPackages_2025; | ||||
|     oneMath = callPackage ./pkgs/onemath/default.nix { }; | ||||
|     jemallocNanos6 = callPackage ./pkgs/nanos6/jemalloc.nix { }; | ||||
|     lmbench = callPackage ./pkgs/lmbench/default.nix { }; | ||||
|     mcxx = callPackage ./pkgs/mcxx/default.nix { }; | ||||
|  | ||||
							
								
								
									
										73
									
								
								pkgs/onemath/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								pkgs/onemath/default.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,73 @@ | ||||
| { lib | ||||
| , intelPackages | ||||
| , withCFlags | ||||
| , fetchFromGitHub | ||||
| , cmake | ||||
| , cudaPackages | ||||
| , enableNvidia ? true | ||||
| , withHipTargets ? null # only one target at a time supported | ||||
| , rocmPackages | ||||
| , enableMkl ? true | ||||
| }: | ||||
| 
 | ||||
| let | ||||
|   enableHip = withHipTargets != null; | ||||
| 
 | ||||
|   stdenv = withCFlags (lib.optionals enableNvidia [ "--cuda-path=${cudaPackages.cudatoolkit}" ]) intelPackages.stdenv; | ||||
| in | ||||
| stdenv.mkDerivation rec { | ||||
|   pname = "oneMath"; | ||||
|   version = "0.7"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "uxlfoundation"; | ||||
|     repo = "oneMath"; | ||||
|     rev = "v${version}"; | ||||
|     sha256 = "sha256-De04PUmI68Jx4rJ+MRb+RepayZCapgnouCUCrAu6G38="; | ||||
|   }; | ||||
| 
 | ||||
|   cmakeFlags = [ | ||||
|     (lib.cmakeBool "ENABLE_MKLCPU_BACKEND"    enableMkl) | ||||
|     (lib.cmakeBool "ENABLE_MKLGPU_BACKEND"    enableMkl) | ||||
| 
 | ||||
|     (lib.cmakeBool "ENABLE_CUBLAS_BACKEND"    enableNvidia) | ||||
|     (lib.cmakeBool "ENABLE_CUFFT_BACKEND"     enableNvidia) | ||||
|     (lib.cmakeBool "ENABLE_CURAND_BACKEND"    enableNvidia) | ||||
|     (lib.cmakeBool "ENABLE_CUSOLVER_BACKEND"  enableNvidia) | ||||
|     (lib.cmakeBool "ENABLE_CUSPARSE_BACKEND"  enableNvidia) | ||||
| 
 | ||||
|     (lib.cmakeBool "ENABLE_ROCBLAS_BACKEND"   enableHip) | ||||
|     (lib.cmakeBool "ENABLE_ROCFFT_BACKEND"    enableHip) | ||||
|     (lib.cmakeBool "ENABLE_ROCSOLVER_BACKEND" enableHip) | ||||
|     (lib.cmakeBool "ENABLE_ROCRAND_BACKEND"   enableHip) | ||||
|     (lib.cmakeBool "ENABLE_ROCSPARSE_BACKEND" enableHip) | ||||
| 
 | ||||
|     (lib.cmakeBool "BUILD_FUNCTIONAL_TESTS" false) | ||||
|     (lib.cmakeBool "BUILD_EXAMPLES" false) | ||||
|   ] ++ lib.optionals enableHip [ | ||||
|     (lib.cmakeFeature "HIP_TARGETS" withHipTargets) | ||||
|   ]; | ||||
| 
 | ||||
|   nativeBuildInputs = [ cmake ]; | ||||
|   buildInputs = lib.optionals (enableMkl) [ | ||||
|     intelPackages.mkl | ||||
|     intelPackages.tbb | ||||
|   ] ++ lib.optionals (enableHip) [ | ||||
|     rocmPackages.rocmPath | ||||
|     rocmPackages.rocblas | ||||
|     rocmPackages.rocfft | ||||
|     rocmPackages.rocsolver | ||||
|     rocmPackages.rocrand | ||||
|     rocmPackages.rocsparse | ||||
|   ] ++ lib.optionals (enableNvidia) [ | ||||
|     (lib.getDev cudaPackages.cuda_cudart) | ||||
|     cudaPackages.cudatoolkit | ||||
| 
 | ||||
|     cudaPackages.libcublas | ||||
|     cudaPackages.libcurand | ||||
|     cudaPackages.libcufft | ||||
|     cudaPackages.libcusparse | ||||
|     cudaPackages.libcusolver | ||||
|   ]; | ||||
| 
 | ||||
| } | ||||
		Reference in New Issue
	
	Block a user