rtx-cfd legacy GPU: buffers re-borrowed after nested device calls; writing and delegating methods take &mut self
CI / Format Check (push) Failing after 6s
Performance Benchmarks / Run Benchmarks (push) Failing after 6s
CI / Clippy Check (push) Failing after 6s
CI / Build (ubuntu-latest) (push) Failing after 7s
Documentation / Build API Documentation (push) Failing after 4s
Documentation / Build User Guide (push) Successful in 5s
CI / Build CPU-Only (Explicit) (push) Failing after 1m35s
CI / Build (macos-latest) (push) Canceled after 0s
CI / Python Bindings (maturin) (ubuntu-latest) (push) Canceled after 0s
CI / Test (macos-latest) (push) Canceled after 0s
CI / Test (ubuntu-latest) (push) Canceled after 0s
CI / Python Bindings (maturin) (macos-latest) (push) Canceled after 0s
CI / WASM Build + Size Check (push) Canceled after 0s
CI / Distributed Training Tests (push) Canceled after 0s
CI / CI Success (push) Canceled after 0s
CI / Format Check (push) Failing after 6s
Performance Benchmarks / Run Benchmarks (push) Failing after 6s
CI / Clippy Check (push) Failing after 6s
CI / Build (ubuntu-latest) (push) Failing after 7s
Documentation / Build API Documentation (push) Failing after 4s
Documentation / Build User Guide (push) Successful in 5s
CI / Build CPU-Only (Explicit) (push) Failing after 1m35s
CI / Build (macos-latest) (push) Canceled after 0s
CI / Python Bindings (maturin) (ubuntu-latest) (push) Canceled after 0s
CI / Test (macos-latest) (push) Canceled after 0s
CI / Test (ubuntu-latest) (push) Canceled after 0s
CI / Python Bindings (maturin) (macos-latest) (push) Canceled after 0s
CI / WASM Build + Size Check (push) Canceled after 0s
CI / Distributed Training Tests (push) Canceled after 0s
CI / CI Success (push) Canceled after 0s
This commit is contained in:
@@ -365,7 +365,7 @@ __global__ void d3q19_bounce_back_boundaries(
|
||||
pub fn gpu_collision_step(&mut self) -> CfdResult<()> {
|
||||
let buffers = self
|
||||
.gpu_buffers
|
||||
.as_mut()
|
||||
.as_ref()
|
||||
.ok_or_else(|| CfdError::gpu_error("GPU buffers not initialized"))?;
|
||||
|
||||
let omega = 1.0 / self.params.tau;
|
||||
@@ -375,6 +375,10 @@ __global__ void d3q19_bounce_back_boundaries(
|
||||
|
||||
// Step 2: Compute equilibrium distributions
|
||||
self.gpu_compute_equilibrium()?;
|
||||
let buffers = self
|
||||
.gpu_buffers
|
||||
.as_mut()
|
||||
.ok_or_else(|| CfdError::gpu_error("GPU buffers not initialized"))?;
|
||||
|
||||
// Step 3: Perform BGK collision
|
||||
let module = self
|
||||
@@ -606,7 +610,7 @@ __global__ void d3q19_bounce_back_boundaries(
|
||||
}
|
||||
|
||||
/// Complete GPU LBM time step
|
||||
pub fn gpu_step(&self) -> CfdResult<()> {
|
||||
pub fn gpu_step(&mut self) -> CfdResult<()> {
|
||||
self.gpu_collision_step()?;
|
||||
self.gpu_streaming_step()?;
|
||||
self.gpu_apply_bounce_back_boundaries()?;
|
||||
@@ -667,8 +671,7 @@ __global__ void d3q19_bounce_back_boundaries(
|
||||
}
|
||||
|
||||
/// Get macroscopic variables at a specific point (copy from GPU)
|
||||
pub fn gpu_macroscopic_variables_at(
|
||||
&self,
|
||||
pub fn gpu_macroscopic_variables_at(&mut self,
|
||||
x: usize,
|
||||
y: usize,
|
||||
z: usize,
|
||||
@@ -680,6 +683,10 @@ __global__ void d3q19_bounce_back_boundaries(
|
||||
|
||||
// Extract macroscopic variables first
|
||||
self.gpu_extract_macroscopic_variables()?;
|
||||
let buffers = self
|
||||
.gpu_buffers
|
||||
.as_ref()
|
||||
.ok_or_else(|| CfdError::gpu_error("GPU buffers not initialized"))?;
|
||||
|
||||
// Copy arrays from GPU
|
||||
let density_host = self.kernel_manager.copy_from_device(&buffers.density)?;
|
||||
@@ -723,7 +730,7 @@ __global__ void d3q19_bounce_back_boundaries(
|
||||
}
|
||||
|
||||
/// Calculate total mass on GPU
|
||||
pub fn gpu_total_mass(&self) -> CfdResult<f64> {
|
||||
pub fn gpu_total_mass(&mut self) -> CfdResult<f64> {
|
||||
let buffers = self
|
||||
.gpu_buffers
|
||||
.as_ref()
|
||||
@@ -736,7 +743,7 @@ __global__ void d3q19_bounce_back_boundaries(
|
||||
}
|
||||
|
||||
/// Calculate kinetic energy on GPU
|
||||
pub fn gpu_kinetic_energy(&self) -> CfdResult<f64> {
|
||||
pub fn gpu_kinetic_energy(&mut self) -> CfdResult<f64> {
|
||||
let buffers = self
|
||||
.gpu_buffers
|
||||
.as_ref()
|
||||
|
||||
Reference in New Issue
Block a user