Stack-1
cd0fa59647
[UPDATE] Extended the 4-accumulator SpMV unrolling to s/c/z
...
Generated from template-psblas, where the unrolled csmv_inner kernel was
added to the type-generic X_csr_impl.P90. The d version produced by the
template is byte-identical to the hand-written one in f7db723f , so this
commit only carries s/c/z.
Same dispatch as d: mean row length >= 16 nonzeros/row uses four
accumulators to break the FMA latency chain, shorter rows keep the
original loop. Applies to the beta==0/alpha==1 and beta==1/alpha==1
branches of psb_?_csr_csmv_inner.
Checked with mpif90 -O3 -fopenmp on all three types; the unrolled and
reference loops agree to rounding on rows of every length mod 4,
including empty rows.
2026-08-07 12:40:46 +02:00
sfilippone
d2fba9e952
Fix licensing text
2026-03-18 14:49:55 +01:00
Salvatore Filippone
25f73d15db
Fix spspmm allocation to avoid double free error
2025-09-30 10:23:40 +02:00
sfilippone
dc25c789ef
Fixes for Intel compilation take 2. To be completed.
2025-09-18 20:27:26 +02:00
sfilippone
da3f16ba56
Use less memory, check on symbmm
2025-07-09 11:30:41 +02:00
sfilippone
86a6ab413a
Use less memory in spspmm
2025-06-27 14:03:46 +02:00
Salvatore Filippone
4a1610d705
Add check for allocation in certain OpenMP paths
2025-04-30 11:52:05 +02:00
sfilippone
922f7dd278
Tweak SIMD directives for CSR.
2025-04-08 13:40:33 +02:00
sfilippone
ea6c4181f7
Changed all defines with prefix PSB_
2025-03-14 12:54:18 +01:00
sfilippone
4e71fa971c
Modify clean_zeros and have it only at base%
2025-01-08 17:18:54 +01:00
sfilippone
949499265e
Simplify clean_zeros
2024-10-08 11:48:48 +02:00
sfilippone
1c235f9281
Improve clean_zeros
2024-10-04 10:28:52 +02:00
sfilippone
108d544fc1
Fix clean_zeros to always keep the diagonal
2024-10-04 08:37:45 +02:00
sfilippone
e72c0f0bf9
Fix OMP impl of sparse-sparse product
2024-04-29 15:04:23 +02:00
sfilippone
025350a361
Make sure realloc is always called with size >0
2024-04-23 14:06:27 +02:00
sfilippone
be7571f568
Fix missing directive
2023-12-20 13:45:43 +01:00
sfilippone
ae7fad95d4
Merge branch 'development' into non-diag
2023-11-07 18:02:55 +01:00
sfilippone
a6ec655a97
Prepare merge
2023-11-07 17:57:32 +01:00
sfilippone
41be1357c3
Set defaults for SPSPMM depending on OpenMP compilation.
2023-08-30 13:45:51 +02:00
Salvatore Filippone
0d8a5d3dc2
New SPSPMM implementation
2023-08-29 19:27:29 +02:00
sfilippone
ca82520b88
Reworked CSR TRIL/TRIU for OpenMP
2023-08-01 10:16:22 +02:00
sfilippone
2f403e0df7
Rework cp_{from|to}_fmt for better OpenMP performance
2023-06-28 11:16:53 +02:00
sfilippone
739dc78a75
Merge branch 'development' into omp-threadsafe
2023-04-27 13:07:42 +02:00
sfilippone
74a8217520
Fixed silly bug in EXSCAN and usage in CSR_IMPL
2023-04-21 12:02:18 +02:00
sfilippone
f3efea0a89
Take out IBASE from exscan, makes no sense.
2023-04-20 12:31:32 +02:00
sfilippone
9c248a31e2
Refactored EXSCAN and its OpenMP usage.
2023-04-19 12:12:58 +02:00
sfilippone
02dd204351
Implement psi_exscan and use in _from_coo
2023-04-18 17:00:22 +02:00
sfilippone
dbd55321f8
Fixed CSR mv and cp _from_coo with OpenMP.
2023-04-17 21:00:20 +02:00
sfilippone
8459ea28f5
Modified matrix build procedures with OpenMP
2023-04-14 18:25:43 +02:00
sfilippone
c05b32c202
Reset status for csr_impl.
2023-03-29 14:41:35 +02:00
Salvatore Filippone
fd0b1482e5
Merge branch 'dev-openmp' of github.com:sfilippone/psblas3 into dev-openmp
2023-02-06 19:01:06 +01:00
Salvatore Filippone
afdbac6727
Swicth csr_impl to F90
2023-02-06 19:00:07 +01:00