ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
Host and device containers for particle data. More...
Public Member Functions | |
~Storage () | |
void | realloc_device_memory () |
void | split_particle_struct () |
void | copy_particles_to_device () |
void | copy_particle_forces_to_host () |
void | copy_particle_torques_to_host () |
std::span< float > | get_particle_forces_host_span () |
std::span< float > | get_particle_torques_host_span () |
Static Public Member Functions | |
static auto | make_shared (ResourceCleanup &cleanup_queue) |
Public Attributes | |
GpuParticleData::prop::bitset | m_need |
Which particle properties are needed by GPU methods. | |
GpuParticleData::GpuEnergy * | energy_device = nullptr |
std::size_t | current_size = 0ul |
pinned_vector< GpuParticle > | particle_data_host |
thrust::device_vector< GpuParticle > | particle_data_device |
pinned_vector< float > | particle_forces_host |
thrust::device_vector< float > | particle_forces_device |
pinned_vector< float > | particle_torques_host |
thrust::device_vector< float > | particle_torques_device |
float * | particle_pos_device = nullptr |
float * | particle_dip_device = nullptr |
float * | particle_q_device = nullptr |
Host and device containers for particle data.
Definition at line 90 of file GpuParticleData_cuda.cu.
|
inline |
Definition at line 122 of file GpuParticleData_cuda.cu.
|
inline |
Definition at line 126 of file GpuParticleData_cuda.cu.
References particle_forces_device, and particle_forces_host.
|
inline |
Definition at line 133 of file GpuParticleData_cuda.cu.
References particle_torques_device, and particle_torques_host.
void GpuParticleData::Storage::copy_particles_to_device | ( | ) |
Definition at line 219 of file GpuParticleData_cuda.cu.
References byte_size(), particle_data_device, particle_data_host, particle_forces_device, particle_forces_host, particle_torques_device, particle_torques_host, raw_data_pointer(), resize_or_replace(), and stream.
|
inline |
Definition at line 141 of file GpuParticleData_cuda.cu.
References particle_forces_host.
|
inline |
Definition at line 145 of file GpuParticleData_cuda.cu.
References particle_torques_host.
|
inlinestatic |
Definition at line 116 of file GpuParticleData_cuda.cu.
References ResourceCleanup::push().
Referenced by GpuParticleData::initialize().
void GpuParticleData::Storage::realloc_device_memory | ( | ) |
Definition at line 389 of file GpuParticleData_cuda.cu.
References cuda_safe_mem, GpuParticleData::prop::dip, GpuParticleData::prop::pos, and GpuParticleData::prop::q.
void GpuParticleData::Storage::split_particle_struct | ( | ) |
Definition at line 358 of file GpuParticleData_cuda.cu.
References GpuParticleData::prop::dip, GpuParticleData::prop::pos, GpuParticleData::prop::q, raw_data_pointer(), and ParticleRange::size().
std::size_t GpuParticleData::Storage::current_size = 0ul |
Definition at line 99 of file GpuParticleData_cuda.cu.
GpuParticleData::GpuEnergy* GpuParticleData::Storage::energy_device = nullptr |
Definition at line 98 of file GpuParticleData_cuda.cu.
GpuParticleData::prop::bitset GpuParticleData::Storage::m_need |
Which particle properties are needed by GPU methods.
Definition at line 97 of file GpuParticleData_cuda.cu.
thrust::device_vector<GpuParticle> GpuParticleData::Storage::particle_data_device |
Definition at line 101 of file GpuParticleData_cuda.cu.
Referenced by copy_particles_to_device().
pinned_vector<GpuParticle> GpuParticleData::Storage::particle_data_host |
Definition at line 100 of file GpuParticleData_cuda.cu.
Referenced by copy_particles_to_device().
float* GpuParticleData::Storage::particle_dip_device = nullptr |
Definition at line 110 of file GpuParticleData_cuda.cu.
thrust::device_vector<float> GpuParticleData::Storage::particle_forces_device |
Definition at line 103 of file GpuParticleData_cuda.cu.
Referenced by copy_particle_forces_to_host(), and copy_particles_to_device().
pinned_vector<float> GpuParticleData::Storage::particle_forces_host |
Definition at line 102 of file GpuParticleData_cuda.cu.
Referenced by copy_particle_forces_to_host(), copy_particles_to_device(), and get_particle_forces_host_span().
float* GpuParticleData::Storage::particle_pos_device = nullptr |
Definition at line 108 of file GpuParticleData_cuda.cu.
float* GpuParticleData::Storage::particle_q_device = nullptr |
Definition at line 113 of file GpuParticleData_cuda.cu.
thrust::device_vector<float> GpuParticleData::Storage::particle_torques_device |
Definition at line 106 of file GpuParticleData_cuda.cu.
Referenced by copy_particle_torques_to_host(), and copy_particles_to_device().
pinned_vector<float> GpuParticleData::Storage::particle_torques_host |
Definition at line 105 of file GpuParticleData_cuda.cu.
Referenced by copy_particle_torques_to_host(), copy_particles_to_device(), and get_particle_torques_host_span().