diff options
| -rw-r--r-- | .nix/adaptive-cpp.nix | 19 | ||||
| -rw-r--r-- | default.nix | 13 | ||||
| -rw-r--r-- | examples/poiseulle_3d_gpu/sim.cpp | 6 |
3 files changed, 30 insertions, 8 deletions
diff --git a/.nix/adaptive-cpp.nix b/.nix/adaptive-cpp.nix index a39d9b7..b8a7688 100644 --- a/.nix/adaptive-cpp.nix +++ b/.nix/adaptive-cpp.nix @@ -6,7 +6,16 @@ , boost , llvmPackages , lld +, libffi +, libxml2 , python3 +, config ? { + rocm = false; + } +, rocmPackages +, spirv-tools +, spirv-headers +, spirv-llvm-translator }: let @@ -33,6 +42,14 @@ in stdenv.mkDerivation { llvmPackages.libclang llvmPackages.llvm python3 + ] ++ lib.optionals config.rocm [ + rocmPackages.clr + rocmPackages.rocm-runtime + libffi + libxml2 + spirv-tools + spirv-headers + spirv-llvm-translator ]; cmakeFlags = [ @@ -52,6 +69,8 @@ in stdenv.mkDerivation { --prefix PATH : ${lib.makeBinPath [ lld python3 ]} \ --add-flags "-L${llvmPackages.openmp}/lib" \ --add-flags "-I${llvmPackages.openmp.dev}/include" \ + '' + lib.optionalString config.rocm '' + --add-flags "--rocm-device-lib-path=${rocmPackages.rocm-device-libs}/amdgcn/bitcode" ''; postPatch = '' diff --git a/default.nix b/default.nix index 9108cf3..cc0a84c 100644 --- a/default.nix +++ b/default.nix @@ -1,5 +1,6 @@ { pkgs ? (import <nixpkgs> {}) -, llvmPackages ? pkgs.llvmPackages_19 +, llvmPackages ? pkgs.llvmPackages_18 +, lld ? pkgs.lld_18 , stdenv ? llvmPackages.stdenv , clang-tools ? llvmPackages.clang-tools }: @@ -29,12 +30,14 @@ let installPhase = '' mv glad_out $out ''; - }; + }; adaptive-cpp = pkgs.callPackage .nix/adaptive-cpp.nix { - inherit stdenv; - llvmPackages = pkgs.llvmPackages_19; - lld = pkgs.lld_19; + inherit stdenv llvmPackages lld; + + config = { + rocm = false; + }; }; sci_tools = let diff --git a/examples/poiseulle_3d_gpu/sim.cpp b/examples/poiseulle_3d_gpu/sim.cpp index df4647e..8b5a831 100644 --- a/examples/poiseulle_3d_gpu/sim.cpp +++ b/examples/poiseulle_3d_gpu/sim.cpp @@ -10,9 +10,9 @@ namespace kel { namespace lbm { -constexpr uint64_t dim_x = 512ul; -constexpr uint64_t dim_y = 128ul; -constexpr uint64_t dim_z = 128ul; +constexpr uint64_t dim_x = 1024ul; +constexpr uint64_t dim_y = 256ul; +constexpr uint64_t dim_z = 256ul; constexpr uint64_t particle_size = 128ul; namespace sch { |
