Skip to content

[Backends] add buffer mirror#696

Merged
tdavidcl merged 8 commits intomainfrom
feature/buf-mirrors
Dec 23, 2024
Merged

[Backends] add buffer mirror#696
tdavidcl merged 8 commits intomainfrom
feature/buf-mirrors

Conversation

@tdavidcl
Copy link
Member

This PR add a BufferMirror utility. This is just a pointer to mirror data from a DeviceBuffer which will write back changes on destruction.

Typically to write data from the CPU one can do the following:

{
    auto acc = f.get_buf().template mirror_to<sham::host>();
    auto acc_xyz = xyz.get_buf().template mirror_to<sham::host>();

    for (u32 i = 0; i < f.size(); i++) {
        Tvec position = acc_xyz[i];
        acc[i] =function(position);
    }

}

@github-actions
Copy link
Contributor

Pre-commit check: ✅

trim trailing whitespace.................................................Passed
fix end of files.........................................................Passed
check for merge conflicts................................................Passed
check that executables have shebangs.....................................Passed
check that scripts with shebangs are executable..........................Passed
check for added large files..............................................Passed
check for case conflicts.................................................Passed
check yaml...............................................................Passed
detect private key.......................................................Passed
Validate GitHub Workflows................................................Passed
clang-format.............................................................Passed
Check doxygen headers....................................................Passed
Check license headers....................................................Passed
Check #pragma once.......................................................Passed
Check SYCL #include......................................................Passed

Test pipeline can run.

@github-actions
Copy link
Contributor

Cland tidy diff report


4 warnings generated.
Suppressed 4 warnings (4 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.

Suggested changes

Detailed changes :

@github-actions
Copy link
Contributor

Doxygen diff with main

Removed warnings : 50
New warnings : 50
Warnings count : 5729 → 5729 (0.0%)

Detailed changes :
- src/shambackends/include/shambackends/DeviceBuffer.hpp:229: warning: The following parameter of sham::DeviceBuffer::get_read_access(sham::EventList &depends_list, SourceLocation src_loc=SourceLocation{}) const is not documented:
+ src/shambackends/include/shambackends/DeviceBuffer.hpp:232: warning: The following parameter of sham::DeviceBuffer::get_read_access(sham::EventList &depends_list, SourceLocation src_loc=SourceLocation{}) const is not documented:
- src/shambackends/include/shambackends/DeviceBuffer.hpp:246: warning: The following parameter of sham::DeviceBuffer::get_write_access(sham::EventList &depends_list, SourceLocation src_loc=SourceLocation{}) is not documented:
+ src/shambackends/include/shambackends/DeviceBuffer.hpp:249: warning: The following parameter of sham::DeviceBuffer::get_write_access(sham::EventList &depends_list, SourceLocation src_loc=SourceLocation{}) is not documented:
- src/shammodels/sph/Model.hpp:102: warning: Member set_debug_dump(bool _do_debug_dump, std::string _debug_dump_filename) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:103: warning: Member set_debug_dump(bool _do_debug_dump, std::string _debug_dump_filename) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:106: warning: Member get_total_part_count() (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:107: warning: Member get_total_part_count() (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:108: warning: Member total_mass_to_part_mass(f64 totmass) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:109: warning: Member total_mass_to_part_mass(f64 totmass) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:110: warning: Member get_ideal_fcc_box(Tscal dr, std::pair< Tvec, Tvec > box) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:111: warning: Member get_ideal_fcc_box(Tscal dr, std::pair< Tvec, Tvec > box) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:111: warning: Member get_ideal_hcp_box(Tscal dr, std::pair< Tvec, Tvec > box) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:112: warning: Member get_ideal_hcp_box(Tscal dr, std::pair< Tvec, Tvec > box) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:113: warning: Member get_hfact() (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:114: warning: Member get_hfact() (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:115: warning: Member rho_h(Tscal h) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:116: warning: Member rho_h(Tscal h) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:119: warning: Member add_cube_fcc_3d(Tscal dr, std::pair< Tvec, Tvec > _box) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:120: warning: Member add_cube_fcc_3d(Tscal dr, std::pair< Tvec, Tvec > _box) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:120: warning: Member add_cube_hcp_3d(Tscal dr, std::pair< Tvec, Tvec > _box) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:121: warning: Member add_cube_hcp_3d(Tscal dr, std::pair< Tvec, Tvec > _box) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:121: warning: Member add_cube_hcp_3d_v2(Tscal dr, std::pair< Tvec, Tvec > _box) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:122: warning: Member add_cube_hcp_3d_v2(Tscal dr, std::pair< Tvec, Tvec > _box) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:123: warning: Member get_setup() (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:124: warning: Member get_setup() (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:147: warning: Member add_big_disc_3d(Tvec center, Tscal central_mass, u32 Npart, Tscal r_in, Tscal r_out, Tscal disc_mass, Tscal p, Tscal H_r_in, Tscal q, std::mt19937 eng) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:148: warning: Member add_big_disc_3d(Tvec center, Tscal central_mass, u32 Npart, Tscal r_in, Tscal r_out, Tscal disc_mass, Tscal p, Tscal H_r_in, Tscal q, std::mt19937 eng) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:159: warning: Member add_sink(Tscal mass, Tvec pos, Tvec velocity, Tscal accretion_radius) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:160: warning: Member add_sink(Tscal mass, Tvec pos, Tvec velocity, Tscal accretion_radius) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:172: warning: Member set_field_value_lambda(std::string field_name, const std::function< T(Tvec)> pos_to_val) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:173: warning: Member set_field_value_lambda(std::string field_name, const std::function< T(Tvec)> pos_to_val) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:419: warning: Member add_cube_disc_3d(Tvec center, u32 Npart, Tscal p, Tscal rho_0, Tscal m, Tscal r_in, Tscal r_out, Tscal q, Tscal cmass) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:420: warning: Member add_cube_disc_3d(Tvec center, u32 Npart, Tscal p, Tscal rho_0, Tscal m, Tscal r_in, Tscal r_out, Tscal q, Tscal cmass) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:53: warning: Member Tscal (typedef) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:54: warning: Member Tscal (typedef) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:54: warning: Member dim (variable) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:55: warning: Member Kernel (typedef) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:55: warning: Member dim (variable) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:56: warning: Member Kernel (typedef) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:573: warning: Member remap_positions(std::function< Tvec(Tvec)> map) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:574: warning: Member remap_positions(std::function< Tvec(Tvec)> map) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:575: warning: Member push_particle(std::vector< Tvec > &part_pos_insert, std::vector< Tscal > &part_hpart_insert, std::vector< Tscal > &part_u_insert) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:576: warning: Member push_particle(std::vector< Tvec > &part_pos_insert, std::vector< Tscal > &part_hpart_insert, std::vector< Tscal > &part_u_insert) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:57: warning: Member Solver (typedef) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:581: warning: Member set_value_in_a_box(std::string field_name, T val, std::pair< Tvec, Tvec > box) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:582: warning: Member set_value_in_a_box(std::string field_name, T val, std::pair< Tvec, Tvec > box) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:58: warning: Member Solver (typedef) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:58: warning: Member SolverConfig (typedef) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:59: warning: Member SolverConfig (typedef) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:609: warning: Member set_value_in_sphere(std::string field_name, T val, Tvec center, Tscal radius) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:614: warning: Member set_value_in_sphere(std::string field_name, T val, Tvec center, Tscal radius) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:61: warning: Member ctx (variable) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:62: warning: Member ctx (variable) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:637: warning: Member add_kernel_value(std::string field_name, T val, Tvec center, Tscal h_ker) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:63: warning: Member solver (variable) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:648: warning: Member add_kernel_value(std::string field_name, T val, Tvec center, Tscal h_ker) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:64: warning: Member solver (variable) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:664: warning: Member get_sum(std::string name) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:67: warning: Member Model(ShamrockCtx &ctx) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:680: warning: Member get_closest_part_to(Tvec pos) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:681: warning: Member get_sum(std::string name) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:68: warning: Member Model(ShamrockCtx &ctx) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:690: warning: Member set_solver_config(typename Solver::Config cfg) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:692: warning: Member solver_logs_last_rate() (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:693: warning: Member solver_logs_last_obj_count() (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:694: warning: Member change_htolerance(Tscal in) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:697: warning: Member get_closest_part_to(Tvec pos) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:707: warning: Member set_solver_config(typename Solver::Config cfg) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:709: warning: Member solver_logs_last_rate() (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:710: warning: Member solver_logs_last_obj_count() (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:711: warning: Member change_htolerance(Tscal in) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:73: warning: Member init_scheduler(u32 crit_split, u32 crit_merge) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:74: warning: Member init_scheduler(u32 crit_split, u32 crit_merge) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:76: warning: Member get_box_dim_fcc_3d(Tscal dr, u32 xcnt, u32 ycnt, u32 zcnt) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:770: warning: Member evolve_once_time_expl(f64 t_curr, f64 dt_input) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:772: warning: Member timestep() (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:774: warning: Member evolve_once() (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:779: warning: Member evolve_until(Tscal target_time, i32 niter_max) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:77: warning: Member get_box_dim_fcc_3d(Tscal dr, u32 xcnt, u32 ycnt, u32 zcnt) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:787: warning: Member evolve_once_time_expl(f64 t_curr, f64 dt_input) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:789: warning: Member timestep() (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:791: warning: Member evolve_once() (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:796: warning: Member evolve_until(Tscal target_time, i32 niter_max) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:80: warning: Member set_cfl_cour(Tscal cfl_cour) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:81: warning: Member set_cfl_cour(Tscal cfl_cour) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:83: warning: Member set_cfl_force(Tscal cfl_force) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:84: warning: Member set_cfl_force(Tscal cfl_force) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:86: warning: Member set_particle_mass(Tscal gpart_mass) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:87: warning: Member set_particle_mass(Tscal gpart_mass) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:90: warning: Member resize_simulation_box(std::pair< Tvec, Tvec > box) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:91: warning: Member resize_simulation_box(std::pair< Tvec, Tvec > box) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:94: warning: Member gen_config_from_phantom_dump(PhantomDump &phdump, bool bypass_error) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:95: warning: Member gen_config_from_phantom_dump(PhantomDump &phdump, bool bypass_error) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:95: warning: Member init_from_phantom_dump(PhantomDump &phdump) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:96: warning: Member init_from_phantom_dump(PhantomDump &phdump) (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:96: warning: Member make_phantom_dump() (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:97: warning: Member make_phantom_dump() (function) of class shammodels::sph::Model is not documented.
- src/shammodels/sph/Model.hpp:98: warning: Member do_vtk_dump(std::string filename, bool add_patch_world_id) (function) of class shammodels::sph::Model is not documented.
+ src/shammodels/sph/Model.hpp:99: warning: Member do_vtk_dump(std::string filename, bool add_patch_world_id) (function) of class shammodels::sph::Model is not documented.

@tdavidcl tdavidcl merged commit 768aec4 into main Dec 23, 2024
@tdavidcl tdavidcl deleted the feature/buf-mirrors branch December 23, 2024 17:56
tdavidcl added a commit that referenced this pull request Dec 27, 2024
Fix compile error on recent clang (20+) introduced by #696.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant