-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CUDA threads/block via config_str, git downloads #110
Closed
martinschwinzerl
wants to merge
463
commits into
SixTrack:master
from
martinschwinzerl:cuda_grid_dims
Closed
CUDA threads/block via config_str, git downloads #110
martinschwinzerl
wants to merge
463
commits into
SixTrack:master
from
martinschwinzerl:cuda_grid_dims
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
… from an ClController
…enCL Controller methods
Kparasch master particles
…ity for various functions to the C99 interface
…CLContextBase to python
…run-time compilation information
…ed aperture check
…ptions via the generated cl.h file
- adds feature flags, pairs of key-value strings that can be translated into compiler options for the OpenCL runtime compiler - adds handling for the default compiler options stored in the Controller
…e new feature handling macros
… compile option handling - removes "enable/disable" beam-beam tracking boolean flag - this is now handled as a combination of the SIXTRL_TRACK_BEAMBEAM4D and SIXTRL_TRACK_BEAMBEAM6D feature flags - adds a skip beam-beam tracking setter - uses feature flags for all compiler option generation - properly uses the default compiler options - exposes the default compiler options to C99 api
…ed C99 methods Python
… to the ClController python implementation
…o opencl_kernel_info.py
…NCHED into TRACK_SPACECHARGE
… TRACK_SC_BUNCHED into TRACK_SPACECHARGE
…oblems during a merge
…ile to use same fields like C/C++ API
…ofile) because of changed API
…for Q-Gaussian line profiles
Note: this addresses the problem described in issue SixTrack#125
Note: this should address issue SixTrack#125 for cc >= 3.5
… stored trackjob buffers
- updates the names and API of the space-charge API - performs cosmetic changes - applies linter to for pep8 conformity
…ific file - moves the python LineDensityProfileData implementation from interpol.py to sc_line_density.py . - renames the buffer assignment creation function to get a shorter name
- reflects the updated API names for the space-charge elements - uses updated/streamlined line-density profile data API
Re-merged with #132, seems to pass all tests on my machine |
The SIXTRL_OPTIONAL decorating attribute is removed since the doInitCudaTrackJob method has a corresponding parameter -> the currently not used degree of freedom can be handled more cleanly there
Merged
Merged into Pr #132 -> close |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
TL;DR:
Adds support for explicitly stating the default grid dimensions for cuda kernels during the creation of a track-job via a TOML encoded config_str. Provides a new method to sync local copies of external libraries with upstream git repositories. Fixes a bug introduced in #108 concerning disabling nodes for OpenCL. Passes all tests on my machine and should not produce any new conflicts
Detailed Changes
config_str
parameter during track_job creation. Cf. minimal python example:This can be used to investigate the effects of the current fixed-size grid on the run-time performance of CUDA tracking.
Introduce support for parsing TOML config files and strings. To this end, the toml11 library is embedded and used. The
config_str
variable for the CudaTrackJob is the first use-case for this method, since most objects in SixTrackLib take a config_str during creation, further uses of this feature are anticipatedThere are problems with the download of external projects like the OpenCL headers in newer versions of CMake with the "works also on CMake < 3.11" approach that is currently employed. To not mandate very bleeding-edge versions of CMake that supports the new
FetchContent
approach, a function is provided incmake/SetupGit.cmake
to clone or optionally sync a locally cloned repository with upstream. The functionGit_sync_with_repo
tries to only fetch the project if the ref's differ and be configured to also track a branch different than master.Fixes a bug in the
SIXTRACKLIB_DEVICES
parsing of devices if there are more than one devices available that match a certain token in the stringProblems
On CMake >= 3.15, a problem occurs with the linking of the host interface to cuda Kernels. Cf #109 for further details. If possible, please try to build with CMake < 3.15 until this is resolved.