MCPcopy Create free account
hub / github.com/NGSolve/ngsolve / Mult

Method Mult

ngscuda/cuda_linalg.cpp:313–339  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

311
312
313 void DevDiagonalMatrix :: Mult (const BaseVector & x, BaseVector & y) const
314 {
315 UnifiedVectorWrapper ux(x);
316 UnifiedVectorWrapper uy(y);
317
318 /*
319 ux.UpdateDevice();
320 uy.UpdateDevice();
321
322 // MultDiagonal (diag.Size(), diag.DevData(), ux.DevData(), uy.DevData());
323 DeviceParallelFor
324 (diag.Size(),
325 [ddiag=diag.DevData(), dx=ux.DevData(), dy=uy.DevData()] DEVICE_LAMBDA (auto tid)
326 {
327 dy[tid] = ddiag[tid]*dx[tid];
328 });
329
330 uy.InvalidateHost();
331 */
332
333 DeviceParallelFor
334 (diag.Size(),
335 [ddiag=diag.DevData(), dx=ux.FVDevRO(), dy=uy.FVDev()] DEVICE_LAMBDA (auto tid)
336 {
337 dy(tid) = ddiag[tid]*dx(tid);
338 });
339 }
340
341 void DevDiagonalMatrix :: MultAdd (double s, const BaseVector & x, BaseVector & y) const
342 {

Callers

nothing calls this directly

Calls 5

DeviceParallelForFunction · 0.85
InvalidateHostMethod · 0.80
SizeMethod · 0.45
DevDataMethod · 0.45
WidthMethod · 0.45

Tested by

no test coverage detected