- 02 Dec, 2024 1 commit
-
-
Thomas Koopman authored
-
- 29 Nov, 2024 1 commit
-
-
Thomas Koopman authored
-
- 16 Aug, 2024 1 commit
-
-
- 05 Mar, 2024 1 commit
-
-
- 23 Jan, 2024 1 commit
-
-
- 18 Nov, 2023 1 commit
-
-
- 18 Feb, 2023 1 commit
-
-
Sven-Bodo Scholz authored
-
- 29 Jan, 2023 1 commit
-
-
Sven-Bodo Scholz authored
This turned out harder than anticipated as only main.c knows about it and needs to communicate this to sac2c.
-
- 10 Nov, 2022 1 commit
-
-
Sven-Bodo Scholz authored
this allows for target-dependent SaC. At the time being this is mainly meant as a research vehicle enabling different linear algebra algorithms to be selected for different platforms or to adjust blocking sizes according to target architecture cache info if present. This commit also fixes an omission of a DBUG_RETURN in ctformatting.c
-
- 06 Jul, 2022 2 commits
-
-
Michiel Verloop authored
-
Michiel Verloop authored
• Make two functions static in ctformatting.c. • Remove global.h import from ctinfo.c. • Move CTFintialize from main to OPTanalyseCommandline. • More changes not worth mentioning.
-
- 30 Jun, 2022 7 commits
-
-
Michiel Verloop authored
• Fix a warning for cti-single-line being issued when it should not, and vice versa.
-
Michiel Verloop authored
-
Michiel Verloop authored
In the previous commit, static const globals were defined in ctformatting.c, alongside getter functions. The getters are not allowed, and lead to a hang. The fix is to instead define the globals in the header file as macros.
-
Michiel Verloop authored
• Move the default header formats from ctinfo.c to ctformatting.c ○ The getDefault functions now return a const reference to the default header. • Move option consistency check for cti globals to ctformatting with CTFinitialize. • Fix the test from last commit that was broken. • Various improvements or tiny fixes to ctformatting.c
-
Michiel Verloop authored
• Add CTFcheckHeaderConsistency to ctformatting. • Add default headers to ctinfo and methods to retrieve copies of said headers. • Set the default headers as default headers in globals.mac • Add header consistency checks to OPTcheckOptionConsistency in options.c ○ Add warnings for conflicting cti settings. • Add broken test to test-compile-time-formatting.cpp for CTFcreateMessageLoc.
-
Michiel Verloop authored
• Change default arguments for cti-header-format and cti-multiline-format in globals.mac • Add consistency warning for when -cti-single-line is enabled and -cti-message-line-length != 0 • Fix failing to parse format strings in errors • Fix incorrect documentation in str.c • Break CTIgetErrorMessageVA - the format now differs from the rest.
-
Sven-Bodo Scholz authored
-
- 13 Jun, 2022 8 commits
-
-
-
-
refactored last usages of global.cuda_options to use the target system and removed lots of dead code
-
changed implementation of helper functions to handle the info structure and implemented the foldall pragma generating strategy
-
-
removed global.cuda_arch variable, removed accompanying -arch command line argument, using cuda_arch from sac2crc instead. nvcc now uses correct cuda_arch.
-
-
Now, there is a global variable global.gpukernel which is per default false but can be set to true in the debug version using -dgpukernel It is meant to provide extensive checking of the gpukernel pragma translation. As this is adding significant overhead, it is only available as debug option and not as part of -check g In the cuda phase, we now indicate if some phases are (hybrid only) or (non-hybrid). All non-annotated subphases in cuda are executed in both backends: cuda and cuda-hybrid.
-
- 10 May, 2022 1 commit
-
-
Sven-Bodo Scholz authored
this should fix issue 2314
-
- 19 Feb, 2022 1 commit
-
-
Sven-Bodo Scholz authored
added the renaming, extended the explanation and streamlined the code modification. also changed the default verbosity for the debug version to v2... and added a few tests one of the tests revealed that we, in some cases, do get self-assignment warnings from prop-obj -in/ out code generation. I suppressed them on MAC for now. If they pop up on gcc based systems as well, we shall do the same there.
-
- 16 Feb, 2022 1 commit
-
-
Hans-Nikolai Viessmann authored
Using CMAKE to set the sysroot statically at the time we build sac2c sets limits on the packaged version of sac2c. CMAKE sysroot is versioned to match the XCode/SDK used to compile sac2c. This versioned path **only** exists for a specific version of XCode. On other setups, newer/older version of MacOS, and even newer/older version of XCode, this path is probably invalid. The solution is to use /usr/bin/cc instead, which is a wrapper around clang that correctly sets the sysroot path information (and other details besides). Additionally this commit: * move to cmake 3.19 base support (for better support on Apple M1) * disable (manually) FAT binary generation (for Apple systems) * use -mmacosx-version-min flag to correct set minimum support SDK version * extend str.c; correct module/function comments; add STRstrip function to remove newline/space characters * extend unit tests for strings (STRstrip) * add platform/macos.c util functions (NEEDED?) * add scripts/get-xcode-version.sh script (NEEDED?)
-
- 26 May, 2021 2 commits
-
-
Sven-Bodo Scholz authored
Generally, we have now -h is minimalistic help focussing on the most important options -help is more verbose We also distinguish now between debug and release version. debug -help => identical to the old -h but indicates which phases are executed with the currently specified target -h => restricted output: only presents the activated phases and does not provide full information release -h => as -h in debug but without phases info -h => as -h in debug but with phases info
-
Sven-Bodo Scholz authored
(cherry picked from commit 6d05429acfcb24e8cced841eba145dc8f8348c8d)
-
- 19 May, 2021 1 commit
-
-
Artem Shinkarov authored
Previously, -noprelude meant that we are not loading libprelude as well as libsac, libphm, etc. Therefore, the only usecase for the flag was to compiler the prelude. In case one was using -noprelude with a regular sac program, the lack of libsac (and other libraries) made the compilation process to fail. The -nosaclibs means that we are not loading libsac, phm, etc. Therefore, when we are compiling prelude, we use -noprelude -nosaclibs. If we want to compile a sac program without the prelude functions, we can use -noprelude, and the compilation succeeds.
-
- 23 Oct, 2020 3 commits
-
-
Hans-Nikolai Viessmann authored
With this commit we add four modes for synchronising on memory transfers when using CUDA async transfer mechanisms. These are NONE: we do not synchronise (current model), DEVICE which uses the device synchronise primitive, STREAM wherein we sychronise on the stream, and finally CALLBACK which is similar to STREAM, but does uses spinlocks instead of CUDA event system.
-
Hans-Nikolai Viessmann authored
With this one can change the block shape for 1-dim and 2-dim array kernels from their hardcoded defaults.
-
Hans-Nikolai Viessmann authored
With this commit, we add a compiler flag to set the CUDA architecture at compile time. Previously the CUDA arch was taken from the sac2crc config file, which is generated via cmake/sac2c/config. If one wanted to compile for a different achitecture, one needed to modify the sac2crc config file. Additionally we move the CUDA globals into their own struct (global).
-
- 17 Oct, 2020 1 commit
-
-
Sven-Bodo Scholz authored
-
- 05 Sep, 2019 1 commit
-
-
Hans-Nikolai Viessmann authored
We have had issues with the build system using mtune=native to compile the libsac2c and the runtime libraries, making it impossible to create distributable packages without it breaking due to ISA incompatibilities. Changing the build system to not use mtune=native is doable, but involves having to filter out the mtune=native flag at the right points in the build. Additionally, when using different C compilers (such as with NVCC) we need to account for this, which may require a different solution for each compiler. This is non-trivial to achieve as in some instances the compiler is not applicable to build sac2c, but only a runtime lib or two. This commit uses a different method, which encodes the mtune=native flag into sac2crc and adds a sac2c flag (`-generic`) to toggle the effect. The advantage here is that we can define different flags for different SBIs, without affecting the build system. Furthermore, the changes to the build system are minimal, which involves propagating the flags to sac2crc and change whether libsac2c is built with mtune=native or not.
-
- 05 Dec, 2018 1 commit
-
-
Matthew C G Innes authored
-
- 22 Oct, 2018 2 commits
-
-
Grzegorz Goral authored
-
Grzegorz Goral authored
-