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
Stack-1
f7db723fdb
[ADD] Added loop unrolling using 4 accumulators in csr SpMV
2026-07-12 17:07:54 +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
110a66e7d0
Switch off some debug write
2025-04-01 11:09:47 +02:00
sfilippone
ea6c4181f7
Changed all defines with prefix PSB_
2025-03-14 12:54:18 +01:00
sfilippone
701f297163
Silence warnings uncovered by INTEL
2025-02-27 16:55:06 +01:00
sfilippone
7700d4e0da
Update copyright
2025-02-21 16:27:18 +01:00
sfilippone
c9386c58d8
Remove default(none) from some OpenMP directives.
2025-02-10 15:49:49 +01:00
sfilippone
30810f804e
Additional OpenMP tweaks, to be redesigned in the future.
2025-02-09 14:04:34 +01:00
sfilippone
772533b6f1
Avoid excessive OpenMP overhead in SPINS. Will have to be redesigned.
2025-01-23 15:38:05 +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
39cfcd3893
Fix allocation in coo_impl
2024-05-29 16:54:10 +02:00
sfilippone
a38867be25
Fix allocation in coo_impl
2024-05-29 16:51:58 +02:00
sfilippone
b9ad357648
Improve temp memory allocation in fix_coo
2024-05-29 16:25:49 +02:00
Salvatore Filippone
42293c62b6
Fix usage of sync()
2024-05-21 17:49:48 +02:00
sfilippone
e19284eb6c
Small omp addition
2024-05-16 10:10:08 +02:00
sfilippone
35096a2ef9
Cosmetic changes to coo_impl
2024-05-16 10:05:11 +02:00
sfilippone
70f51b9da8
Improve handling of fix_coo buffers with OpenMP
2024-05-15 12:05:15 +02:00
sfilippone
ecccb13914
Fix COO fix_coo_inner_rowmajor not to overflow on integers.
2024-05-10 13:53:35 +02:00
sfilippone
a613e963db
First step in fix for coo_impl on OpenMP
2024-05-10 10:10:54 +02:00
sfilippone
4e0a9e5db8
Merge branch 'repackage' of github.com:sfilippone/psblas3 into repackage
2024-04-29 15:06:03 +02:00
sfilippone
e72c0f0bf9
Fix OMP impl of sparse-sparse product
2024-04-29 15:04:23 +02:00
Salvatore Filippone
d444a12879
Condition call to x%sync() in vect_mv
2024-04-26 11:35:44 +02:00
Salvatore Filippone
5e2e1e34fd
Introduce set_host() in inner_vect_sv
2024-04-25 18:59:24 +02:00
sfilippone
025350a361
Make sure realloc is always called with size >0
2024-04-23 14:06:27 +02:00
sfilippone
ba8c32c507
Define merge_nd method
2024-04-17 14:27:35 +02:00
sfilippone
3aa3c795e9
Refactor assembly and cnv
2023-12-23 13:15:01 +01:00
sfilippone
49e99a3e82
Fix conversion and product to enable overlap with GPU
2023-12-22 12:01:41 +01:00
sfilippone
74cf138a6c
Merge branch 'repackage' into non-diag
2023-12-22 10:31:48 +01:00
sfilippone
be7571f568
Fix missing directive
2023-12-20 13:45:43 +01:00
sfilippone
6c9ca58282
Silly bug in coo insert
2023-11-29 16:14:30 +01:00
sfilippone
d3b2b7816d
Fix coo insert OpenMP. Fix Make.inc.in
2023-11-29 15:35:55 +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
Salvatore Filippone
d0cacda995
Moved various modules related to RB around, into auxil, update Makefile.
2023-08-29 16:19:56 +02:00
wlthr
2322a9ce61
using end_idx to copy data from threads in gustavson and gustavson_1d
2023-08-28 11:06:30 +02:00
wlthr
0fe95c3c76
added use statement
2023-08-28 10:37:41 +02:00
wlthr
979a3da95f
merged dev-openmp into omp-walther
2023-08-26 10:55:09 +02:00
wlthr
1af76c067c
added parallel double precision spspmm implementations
2023-08-26 10:53:00 +02:00