Commit graph

114 commits

Author SHA1 Message Date
Rocco Meli
400017fac0
Update Spack and add support for Spack packages repository 2025-06-26 08:27:09 +02:00
Ole Schütt
6d377b8c9f Precommit: Format spack packages with upstream style 2025-05-22 18:30:23 +02:00
Harald Forbert
1513aefda2 add ace support 2025-05-06 08:32:16 +02:00
Hans Pabst
0e80b46be4
DBM: optionally reuse DBCSR's libsmm_acc_process (#4109)
- Experimented with specialized vs DBM's universal kernel.
- Performance is equal likey due to data mix/sort (TODO).
- DBCSR/unrelated: Likely introduce DBM-kernel (cleaner).
- Rely on OPENCL_LIBSMM_PFORMAT.

Mempool:
- Revised default to skip mempool for host-allocs if offload
  is not compiled-in or if offload-allocs on host are disabled.
- Renamed and split DBM_ALLOCATION_FACTOR.
- Separate DBM_OVERCOMMIT_DEVICE/HOST.
- More rigid control of mempool config
- Conditionally define mempool lists.

Other:
- Passing batch/task data in const-correct fashion.
- Revised verbose output.
2025-03-28 09:28:11 +01:00
dependabot[bot]
85b7b8c410 Bump gunicorn from 22.0.0 to 23.0.0 in /tools/precommit
Bumps [gunicorn](https://github.com/benoitc/gunicorn) from 22.0.0 to 23.0.0.
- [Release notes](https://github.com/benoitc/gunicorn/releases)
- [Commits](https://github.com/benoitc/gunicorn/compare/22.0.0...23.0.0)

---
updated-dependencies:
- dependency-name: gunicorn
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-23 14:21:29 +01:00
Hans Pabst
3018857f05
DBM: solved issues with MPI based memory allocation (#4090)
- Assert correct size scaled by DBM_ALLOCATION_FACTOR.
- OpenCL: adjusted verbose output.
2025-03-21 15:57:59 +01:00
Hans Pabst
4136e1a5fc
DBM: adjusted MPI-based memory allocation (#4085)
- Apparently, MPI_Alloc_mem/free are not fully thread-safe.
- Debug shows issue similar to issues reported elsewhere.
- Note: MPI_Alloc_mem was taken out of critical section.
2025-03-18 22:00:45 +01:00
Hans Pabst
eb25494c3c
DBM: use host_malloc, introduced host_free and device_free (#4073)
- Internally, use separate pools for device/host memory.
- Let hyperparams enable/disable pooled memory
   - DBM_OFFLOAD_ALLOC
   - DBM_MEMPOOL_DEVICE
   - DBM_MEMPOOL_HOST
- Let hyperparam control offload memory (host).
2025-03-14 14:29:43 +01:00
dependabot[bot]
7c193b409d
Bump jinja2 from 3.1.5 to 3.1.6 in /tools/precommit (#4054)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-06 09:59:41 +01:00
Hans Pabst
91946afd07
DBM_VALIDATE_AGAINST_LIBXSMM to enable internal validation (#4048)
- Compile-time/opt-in with -DDBM_VALIDATE_AGAINST_LIBXSMM.
- TODO: more sophistication like injecting error margin.
2025-03-04 16:06:29 +01:00
Ole Schütt
eced570b41 Precommit: Add work-around for clang-format's excessive memory usage 2025-03-01 12:06:30 +01:00
Ole Schütt
36ef995dc8 Precommit: Touch up check_file_properties.py 2025-03-01 12:06:30 +01:00
Taillefumier Mathieu
cbdeaffe0e
Make GRPP an internal dependency
Co-authored-by: Mathieu Taillefumier <mathieu.taillefumier@free.fr>
2025-02-28 09:36:16 +01:00
Hans Pabst
0217dce9c4
DBM/OCL: option to use SLM as private scratch (#4033)
- DBM_MULTIPLY_SM to use SLM (instead of regs).
- Adjusted permitted preprocessor symbols.
- Control GEN depending on other kernel parameters.
- Avoid bank-conflicts (POT).

- Makefile: miniapp
  - Allow to select GNU Compiler by the means of "make GNU=1".
  - Find <acc_opencl.h> after PR #3994.

- Offload/OCL
  - Implemented offloadGetErrorName and offloadGetLastError.
  - Backward-compatible with DBCSR (OpenCL backend).
2025-02-27 10:53:44 +01:00
Ole Schütt
2819de3bd6 precommit: Ignore very large files 2025-02-12 13:40:05 +01:00
dependabot[bot]
f31b040bfd Bump jinja2 from 3.1.4 to 3.1.5 in /tools/precommit
Bumps [jinja2](https://github.com/pallets/jinja) from 3.1.4 to 3.1.5.
- [Release notes](https://github.com/pallets/jinja/releases)
- [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/jinja/compare/3.1.4...3.1.5)

---
updated-dependencies:
- dependency-name: jinja2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-08 22:44:12 +01:00
Ole Schütt
d59d53cc66 precommit: Touch up DOI check 2024-12-15 13:47:38 +01:00
Hans Pabst
262480dea4
OMP/TRACE: support more comprehensive set of issues (#3784)
- Print issues with in categories: error, warn, info messages.
- Trace additional events and sources of deadlocks and other issues.
- Allow compilation with GNU even if "omp-tools.h" is not present.
- Allow singular translation units under BSD-3 license.
- Print more accurate location of warning.
2024-11-21 14:23:24 +01:00
Hans Pabst
e8c0fe6317
OMP/TRACE: trace-level/verbosity and code location (#3773)
CP2K_OMP_TRACE=1: assert errors at the place/location of the issue (nice debug experience)
CP2K_OMP_TRACE=2: print error issues (printing the code location needs debug symbols)
CP2K_OMP_TRACE=3: print warnings or info messages (when CP2K terminates)

Printing instead of asserting issues (errors, warnings, info) benefits from debug symbols. A negative value of CP2K_OMP_TRACE represents maximum verbosity.
2024-11-12 14:19:56 +01:00
Hans Pabst
4d95af2b47
ocl: removed two variants of the DBM kernel and cleanup (#3761) 2024-11-07 12:58:05 +01:00
dependabot[bot]
51f814e99b Bump werkzeug from 3.0.3 to 3.0.6 in /tools/precommit
Bumps [werkzeug](https://github.com/pallets/werkzeug) from 3.0.3 to 3.0.6.
- [Release notes](https://github.com/pallets/werkzeug/releases)
- [Changelog](https://github.com/pallets/werkzeug/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/werkzeug/compare/3.0.3...3.0.6)

---
updated-dependencies:
- dependency-name: werkzeug
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-26 09:58:38 +02:00
Hans Pabst
63804e02b9 Introduced CPVERSION_CHECK macro
- Adjusted uses of plain CPVERSION accordingly.
- Introduced FTN_NO_DEFAULT_INIT workaround.
2024-09-27 20:25:53 +02:00
Hans Pabst
538a8dc7a9
LIBXSMM: keep compatibility with v1.17 (#3676) 2024-09-13 09:31:43 +02:00
Hans Pabst
352d1c2474
Updated LIBXSMM (#3577) 2024-09-06 12:37:22 +02:00
Hans Pabst
42d1e6b4da IFX: use __INTEL_LLVM_COMPILER instead of __MKL
* Note: it is common to use MKL even for non-Intel compiler
2024-08-16 15:02:23 +02:00
Frederick Stein
537841399b Initialize DBCSR_related variables 2024-08-13 10:14:45 +02:00
Ole Schütt
f3901f63c6 Precommit: Exclude common cmake build dir 2024-08-12 16:11:23 +02:00
Ole Schütt
9a20f053d1 Move prettify into precommit folder and inline fprettify submodule 2024-08-04 12:45:16 +02:00
dependabot[bot]
20da4d9425 Bump jinja2 from 3.1.3 to 3.1.4 in /tools/precommit
Bumps [jinja2](https://github.com/pallets/jinja) from 3.1.3 to 3.1.4.
- [Release notes](https://github.com/pallets/jinja/releases)
- [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/jinja/compare/3.1.3...3.1.4)

---
updated-dependencies:
- dependency-name: jinja2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-06 21:54:48 +02:00
dependabot[bot]
a98737dd6e Bump werkzeug from 3.0.1 to 3.0.3 in /tools/precommit
Bumps [werkzeug](https://github.com/pallets/werkzeug) from 3.0.1 to 3.0.3.
- [Release notes](https://github.com/pallets/werkzeug/releases)
- [Changelog](https://github.com/pallets/werkzeug/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/werkzeug/compare/3.0.1...3.0.3)

---
updated-dependencies:
- dependency-name: werkzeug
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-06 21:32:00 +02:00
Ole Schütt
4dbdcdf615 precommit: Upgrade to Ubuntu 24.04 2024-05-01 17:11:52 +02:00
Hans Pabst
25edd69807
DBM: OpenCL implementation (#3375)
* There are three main implementations
  1. DBM_MULTIPLY_SPLIT=1: default kernel with smallest LOC-number uses private/register-backed buffer. This implementation is simple and performs best even on different vendor's GPUs. There is moderate unrolling/code-bloat leveraging macros. Though, there is no "old school GPU" like copy-into SLM; if there is re-use, it leverage existing caches between registers and global memory.
  2. DBM_MULTIPLY_SPLIT=2..N with DBM_MULTIPLY_SPLIT=8 matching the CUDA implementation using shared/local memory. This implementation matches the existing CUDA implementation and perform equal and reasonable across GPUs. There is moderate unrolling/code-bloat leveraging macros; heuristics are revised/different from CUDA implementation (less cases).
  3. DBM_MULTIPLY_GEN=1: uses https://github.com/intel/tiny-tensor-compiler and IR describing DBM's input format. The IR-file (https://github.com/hfp/cp2k/blob/master/src/dbm/dbm_multiply_opencl.ir) is not part of PR. The generated kernel-code is not yet competitive.
* The amount of code in the OpenCL-kernel and and C based glue-code can be *significantly* reduced (fraction of LOC) when removing for instance implementation 2 and 3 (above mentioned). Reducing the number of LOC can be part of a future cleanup (and once code is settled).
* check_file_properties.py: support C-comments, and omit checking OpenCL source code (it is usually compiled at runtime, i.e., machine-driven rather than user-controlled).
2024-04-29 12:23:24 +02:00
dependabot[bot]
fc017266ad Bump gunicorn from 21.2.0 to 22.0.0 in /tools/precommit
Bumps [gunicorn](https://github.com/benoitc/gunicorn) from 21.2.0 to 22.0.0.
- [Release notes](https://github.com/benoitc/gunicorn/releases)
- [Commits](https://github.com/benoitc/gunicorn/compare/21.2.0...22.0.0)

---
updated-dependencies:
- dependency-name: gunicorn
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-17 12:49:31 +02:00
Cristian Le
58e3e09bda
fedora: Optimize builds (#3268)
Signed-off-by: Cristian Le <cristian.le@mpsd.mpg.de>
2024-03-28 21:07:23 +01:00
dependabot[bot]
ffcbeb74c2 Bump black from 23.11.0 to 24.3.0 in /tools/precommit
Bumps [black](https://github.com/psf/black) from 23.11.0 to 24.3.0.
- [Release notes](https://github.com/psf/black/releases)
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md)
- [Commits](https://github.com/psf/black/compare/23.11.0...24.3.0)

---
updated-dependencies:
- dependency-name: black
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-20 20:46:49 +01:00
Hans Pabst
aa4adac34c
DBM: introduced OpenCL support (#3321) 2024-03-15 16:41:35 +01:00
Hans Pabst
4b070db377 Offload: support OpenCL
* This work "short-cuts" supporting OpenCL by leveraging DBCSR's OpenCL backend to implement CP2K's Offload interface.
  - Future work (may be soon) can decide/settle where the actual glue code is hosted making the "OpenCL backend".
  - OpenCL is very close to CUDA (streams/queues, events, etc), however, an OpenCL backend accounts for differences.
  - Pointer arithmetic on the host using device pointers is not supported with OpenCL without additional effort.
  - OpenCL abstracts device memory being "cl_mem" structure and does not expose actual device pointers.
* Some functions on CP2K's Offload interface (once derived from DBCSR's ACC interface) remain "TODO".
* For the time being offload_runtime.h "disables" support for Grid and PW/FFTs
  - Defines for __NO_OFFLOAD_GRID and __NO_OFFLOAD_PW must be still given for the Fortran code.
* Some changes remove CUDA and HIP specific code-paths by relying on Offload runtime (e.g., offload_create_buffer).
* Some changes also address problematic code format (multi-line control-flow w/o curly braces/block, etc).
* Further updating INSTALL.md and white-listing/removing certain items are part of follow-up changes.
* Cleaned FLAG_EXCEPTIONS (tools/precommit/check_file_properties.py).
2024-03-13 09:44:46 +01:00
Matthias Krack
f76adaefd7 Indent @-directives and set them upercase 2024-01-16 16:23:54 +01:00
dependabot[bot]
1f31a16965
precommit: Bump jinja2 from 3.1.2 to 3.1.3 2024-01-12 12:47:08 +01:00
Ole Schütt
fafc0043f0 precommit: Add input file formatter 2023-12-18 22:41:19 +01:00
Ole Schütt
0dfeee1108 Drop support for NDEBUG 2023-12-15 15:31:33 +01:00
Ole Schütt
71ab6edeee precommit: Fix Python 3.6 incompatibility 2023-11-24 15:37:50 +01:00
Ole Schütt
4bf43545bd Manula: Add precommit check for biblio refs 2023-11-21 18:05:00 +01:00
Ole Schütt
443130275c precommit: Wrap Markdown lines after 100 characters 2023-11-14 12:47:36 +01:00
Ole Schütt
090ed75924 precommit: Add mdformat-myst and upgrade package 2023-11-14 12:47:36 +01:00
Ole Schütt
e3caab925d precommit: Fix Dockerfile 2023-11-12 19:48:03 +01:00
Ole Schütt
ab8d59069b precommit: Use Python venv 2023-11-04 14:30:06 +01:00
Ole Schütt
f8667229bc Fix Python 3.12 warnings 2023-11-04 14:30:06 +01:00
dependabot[bot]
b1e573e536 Bump werkzeug from 2.3.3 to 3.0.1 in /tools/precommit
Bumps [werkzeug](https://github.com/pallets/werkzeug) from 2.3.3 to 3.0.1.
- [Release notes](https://github.com/pallets/werkzeug/releases)
- [Changelog](https://github.com/pallets/werkzeug/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/werkzeug/compare/2.3.3...3.0.1)

---
updated-dependencies:
- dependency-name: werkzeug
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-26 10:55:19 +02:00
Ole Schuett
7c90856a67 Add precommit check for spaces in multi-line strings 2023-10-02 21:47:59 +02:00