diff options
-rw-r--r-- | .nix/adaptive-cpp.nix | 8 | ||||
-rw-r--r-- | c++/lbm.hpp | 1 | ||||
-rw-r--r-- | default.nix | 4 | ||||
-rw-r--r-- | examples/cavity_2d_gpu/.nix/derivation.nix | 6 | ||||
-rw-r--r-- | examples/cavity_2d_gpu/SConstruct | 6 | ||||
-rw-r--r-- | examples/cavity_2d_gpu/cavity_2d_gpu.cpp | 12 |
6 files changed, 26 insertions, 11 deletions
diff --git a/.nix/adaptive-cpp.nix b/.nix/adaptive-cpp.nix index f2d5f9b..6c70be0 100644 --- a/.nix/adaptive-cpp.nix +++ b/.nix/adaptive-cpp.nix @@ -37,6 +37,14 @@ in stdenv.mkDerivation { "-DCLANG_INCLUDE_PATH=${llvmPackages.libclang.dev}/include" ]; + postInstall = '' + if [ -d "$out/include/AdaptiveCpp" ]; then + mv $out/include/AdaptiveCpp .hidden-fake + mv .hidden-fake/* $out/include/ + rmdir .hidden-fake + fi + ''; + postFixup = '' wrapProgram $out/bin/syclcc-clang \ --prefix PATH : ${lib.makeBinPath [ lld ]} \ diff --git a/c++/lbm.hpp b/c++/lbm.hpp index ddd4617..39c42af 100644 --- a/c++/lbm.hpp +++ b/c++/lbm.hpp @@ -8,6 +8,7 @@ #include "component.hpp" #include "environment.hpp" #include "equilibrium.hpp" +#include "iterator.hpp" #include "macroscopic.hpp" #include "write_vtk.hpp" #include "util.hpp" diff --git a/default.nix b/default.nix index 937a1de..a26e539 100644 --- a/default.nix +++ b/default.nix @@ -33,4 +33,8 @@ in rec { kel-lbm = lbm; }; }; + + debug = { + inherit adaptive-cpp; + }; } diff --git a/examples/cavity_2d_gpu/.nix/derivation.nix b/examples/cavity_2d_gpu/.nix/derivation.nix index 876bcb7..f8d7314 100644 --- a/examples/cavity_2d_gpu/.nix/derivation.nix +++ b/examples/cavity_2d_gpu/.nix/derivation.nix @@ -29,12 +29,6 @@ stdenv.mkDerivation { kel-lbm ]; - doCheck = true; - checkPhase = '' - scons test - ./bin/tests - ''; - preferLocalBuild = true; outputs = [ "out" "dev" ]; diff --git a/examples/cavity_2d_gpu/SConstruct b/examples/cavity_2d_gpu/SConstruct index fc60882..da59a2d 100644 --- a/examples/cavity_2d_gpu/SConstruct +++ b/examples/cavity_2d_gpu/SConstruct @@ -54,11 +54,13 @@ env=Environment(ENV=os.environ, variables=env_vars, CPPPATH=[], '-std=c++20', '-g', '-Wall', - '-Wextra' + '-Wextra', + '-isystem', 'AdaptiveCpp' ], LIBS=[ 'forstio-core', - 'forstio-codec' + 'forstio-codec', + 'acpp-rt' ] ); env.__class__.add_source_files = add_kel_source_files diff --git a/examples/cavity_2d_gpu/cavity_2d_gpu.cpp b/examples/cavity_2d_gpu/cavity_2d_gpu.cpp index dc022a1..edb7dd8 100644 --- a/examples/cavity_2d_gpu/cavity_2d_gpu.cpp +++ b/examples/cavity_2d_gpu/cavity_2d_gpu.cpp @@ -3,6 +3,8 @@ #include <forstio/codec/data.hpp> // #include <forstio/remote/ +#include <AdaptiveCpp/sycl/sycl.hpp> + #include <iostream> #include <fstream> #include <cmath> @@ -111,6 +113,7 @@ constexpr size_t dim_y = 128; void set_geometry(saw::data<kel::lbm::sch::CavityFieldD2Q9>& latt){ using namespace kel::lbm; + auto meta = latt.meta(); /** * Set ghost */ @@ -183,8 +186,9 @@ void set_initial_conditions(saw::data<kel::lbm::sch::CavityFieldD2Q9>& latt){ void lbm_step( saw::data<kel::lbm::sch::CavityFieldD2Q9>& latt, + bool even_step, uint64_t time_step, - sycl::queue& sycl_q + acpp::sycl::queue& sycl_q ){ using namespace kel::lbm; using dfi = df_info<sch::T,sch::D2Q9>; @@ -283,7 +287,8 @@ int main(){ */ set_initial_conditions(lattice); - sycl::queue sycl_q{sycl::default_selector_v, sycl::property::queue::in_order{}}; + acpp::sycl::queue sycl_q{acpp::sycl::default_selector_v, acpp::sycl::property::queue::in_order{}}; + acpp::sycl::buffer<saw::data<sch::CavityFieldD2Q9>> df_sycl{&lattice, 1u}; /** * Timeloop @@ -297,6 +302,7 @@ int main(){ saw::data<sch::Array<sch::MacroStruct<sch::T,sch::D2Q9::D>,sch::D2Q9::D>> macros{dim}; + for(uint64_t i = 0u; i < 256u; ++i){ { std::string vtk_f_name{"tmp/poiseulle_2d_"}; @@ -304,7 +310,7 @@ int main(){ write_vtk_file(vtk_f_name, macros); } - lbm_step(lattice, i, sycl_q); + lbm_step(lattice, (i%2u == 0u), i, sycl_q); } return 0; } |