Commit Graph

222 Commits

Author SHA1 Message Date
jpekkila
9796d5e981 The previous commit to ac_mkbuilddir.sh was not enough. Added a line that makes the script to stop if any of the commands fail to avoid cluttering the base astaroth directory. In my case the issue was permission denied when trying to create a project directory in /MYSCRATCH (system root directory) instead of MYSCRATCH (astaroth/MYSCRATCH) 2019-07-29 15:35:51 +03:00
jpekkila
abe4dfb4fe ac_mkbuilddir.sh did not stop if the directory specified by the user did not exist. This lead to messing up the base astaroth directory with temporary cmake files. Added -p flag to mkdir to create parent directories if necessary to avoid this 2019-07-29 15:22:44 +03:00
jpekkila
0282f45077 Forgot extern C 2019-07-23 16:11:17 +03:00
jpekkila
e5172e2a9a Moved more stuff out of astaroth.h to astaroth_defines.h. I'm not particularly sure what's the best way to arrange the include files. These changes are just for readability so it's very safe to move things around though. 2019-07-23 16:06:54 +03:00
jpekkila
c98e730397 Added extern C to the include headers 2019-07-23 15:02:54 +03:00
jpekkila
c0774bc3b8 Added overloads for getting and setting various parameters. However, the compiler mangles the names which is not good for a cross-platform library so the functions are commented out for now. Sadly _Generic, which would solve everything, from C11 is not available in C++. 2019-07-23 14:56:41 +03:00
jpekkila
97d5b2e04a Formatting 2019-07-23 14:39:36 +03:00
jpekkila
323d4e3b31 Replaced all calls to AC_VTXBUF_IDX to acVertexBufferIdx etc in all files 2019-07-23 14:37:28 +03:00
jpekkila
27f4d1e4ff Added actual functions for getting size of the vertex buffers etc. The previously used macros are now deprecated. Type safety is the major benefit of using functions instead of definitions. 2019-07-23 13:44:43 +03:00
jpekkila
fee03b7149 Moved some device limits used only during auto-optimization from astaroth.h to device.cu 2019-07-22 19:54:46 +03:00
jpekkila
85883dbc38 NUM_INT_PARAM_TYPES is now NUM_INT_PARAMS etc, replaced these throughout the project 2019-07-22 19:53:45 +03:00
jpekkila
074eae0bae Added definitions of AC_GEN_STR and AC_GEN_ID to host_memory.h and .cc since they are no longer available from astaroth.h 2019-07-22 19:49:29 +03:00
jpekkila
f74df5339f Cleaned up the include directory: removed all unnecessary stuff and moved common definitions to a separate file 2019-07-22 19:46:45 +03:00
jpekkila
84af939e5d The default benchmark is now more suitable for timing multi-GPU performance 2019-07-22 13:08:33 +03:00
jpekkila
01a013f3bc Added WARNCHK_CUDA_ALWAYS to errchk.h 2019-07-22 13:05:08 +03:00
jpekkila
a950be99f2 Streams now created with priority (all streams have the same priority by default) 2019-07-22 13:04:04 +03:00
jpekkila
168b3c4d8b Peer access to neighboring GPUs is now enabled during initialization 2019-07-22 13:02:19 +03:00
jpekkila
0db61dd411 Disabled the project-wide maxrregcount flag by default since it is only beneficial for resource-heavy kernels. The maximum register count should be defined per kernel instead if needed. 2019-07-22 12:58:28 +03:00
Miikka Vaisala
a8caad1ade A draft of the sink particle plan. 2019-07-18 17:34:09 +08:00
Miikka Vaisala
8f46fc1c64 Documentation for the planned sink particle property. 2019-07-18 16:20:00 +08:00
jpekkila
eb589def71 Added some additional warning flags for gcc. Disabled them by default until I get the new warnings fixed. 2019-07-18 08:34:52 +03:00
Miikka Vaisala
074fb26df9 Added TODO_SINK comments.
The comments were written to map out what essential part are needed for
resolving a system with graviating sink particles. No changes to the code
itself.
2019-07-17 14:05:48 +08:00
jpekkila
78aba6428e Updated the copyright years throughout the project 2019-07-16 14:28:32 +03:00
jpekkila
93fc121f5c Introduced versions of the asynchronous functions which take a stream as a parameter 2019-07-10 15:49:21 +03:00
jpekkila
bd98eaf9f7 Added a stream to loadDeviceConstant call. 2019-07-10 15:29:54 +03:00
jpekkila
b08d5b26f5 cudaMemcpyToSymbol -> cudaMemcpyToSymbolAsync 2019-07-10 15:05:57 +03:00
jpekkila
976bf05c8d Wrong scope for num_iterations in the last commit, fixed 2019-07-10 14:37:32 +03:00
jpekkila
866ec8a192 Removed some old hack I used for benchmarking a while back 2019-07-10 14:34:05 +03:00
jpekkila
9af7193ffb bitbucket-pipelines.yml edited online with Bitbucket 2019-07-10 10:24:28 +00:00
jpekkila
4eb1f74140 bitbucket-pipelines.yml edited online with Bitbucket 2019-07-10 10:12:17 +00:00
jpekkila
a0d4f574b1 bitbucket-pipelines.yml edited online with Bitbucket 2019-07-10 10:07:01 +00:00
jpekkila
22b30d8c78 bitbucket-pipelines.yml edited online with Bitbucket 2019-07-10 09:46:29 +00:00
jpekkila
f38456757e bitbucket-pipelines.yml edited online with Bitbucket 2019-07-10 09:42:14 +00:00
jpekkila
897a5c820c Revert "bitbucket-pipelines.yml edited online with Bitbucket"
This reverts commit 18e7a727c5.
2019-07-10 12:34:50 +03:00
jpekkila
499bc1966f Revert "bitbucket-pipelines.yml edited online with Bitbucket"
This reverts commit b27f598a86.
2019-07-10 12:34:36 +03:00
jpekkila
b27f598a86 bitbucket-pipelines.yml edited online with Bitbucket 2019-07-10 09:28:30 +00:00
jpekkila
18e7a727c5 bitbucket-pipelines.yml edited online with Bitbucket 2019-07-10 09:20:23 +00:00
jpekkila
e14e19774d Added a synchronization to benchmark.cc that is now required when calling acIntegrateStep 2019-07-09 19:03:45 +03:00
jpekkila
8cc9281045 Double versions of some sqrt, cos and sin were used in model_rk3.cc instead of the long double versions, fixed. 2019-07-09 19:03:15 +03:00
jpekkila
e6c770cbee Added a synchronization after acLoadDeviceConstant since it is now stated to be asynchronous 2019-07-09 19:00:08 +03:00
jpekkila
d0b95c39b6 Disabled writing out unnecessary files when auto-optimizing the code 2019-07-09 18:51:04 +03:00
jpekkila
0bda016e17 Reviewed the Astaroth interface. Now there's a clear distinction between synchronous and asynchronous functions. For basic usage, we provide a set of functions that are always safe to call (acIntegrate, acLoad, etc), but because of this, must be quite restricted in the sense that f.ex. the whole mesh must be loaded at once and computations cannot be executed concurrently on multiple GPUs. For more advanced users we provide asynchronous functions (such as acLoadWithOffset). Since we cannot know how the asynchronous functions are called (for example, when the integration step has been fully completed and the halos of neighboring subgrids can be safely communicated between GPUs), the responsibility of synchronization must be left to the user. In the existing implementations we currently use only the basic "safe" set of functions (except in renderer.cc), so the existing functionality has not been changed with these latests commits. Autotests also pass. 2019-07-09 18:42:00 +03:00
jpekkila
1251f61570 Removed a stray acBoundcondStep() in acStore where it definitely shouln't be. Removed code duplication: acBoundcondStep now uses the new acLocalBoundcondStep and acGlobalBoundcondStep functions. 2019-07-09 17:08:18 +03:00
jpekkila
6c7b2dbd8d Merge branch 'master' into multigpu_optimization_2019-07-05 2019-07-09 16:44:55 +03:00
jpekkila
6ec5e5a2c6 bitbucket-pipelines.yml edited online with Bitbucket 2019-07-09 13:21:16 +00:00
jpekkila
bc6f91f610 bitbucket-pipelines.yml edited online with Bitbucket 2019-07-09 12:53:50 +00:00
jpekkila
fba09d2427 bitbucket-pipelines.yml edited online with Bitbucket 2019-07-09 12:51:36 +00:00
jpekkila
afb17c78d4 bitbucket-pipelines.yml edited online with Bitbucket 2019-07-09 12:48:14 +00:00
jpekkila
314f3c1fcc bitbucket-pipelines.yml edited online with Bitbucket 2019-07-09 12:31:16 +00:00
jpekkila
5ceb8ddb7e bitbucket-pipelines.yml edited online with Bitbucket 2019-07-09 12:26:08 +00:00