Commit Graph

  • 0a5d025172 Formatting jpekkila 2019-07-31 19:08:16 +03:00
  • 9b7f4277fc Fixed errors in device.cu jpekkila 2019-07-31 19:07:26 +03:00
  • 49026bd26b Revised device interface done jpekkila 2019-07-31 18:46:41 +03:00
  • 5be775dbff Various intermediate changes jpekkila 2019-07-31 17:48:48 +03:00
  • 499dcabe0a Merge branch 'master' into sink_20190723 JackHsu 2019-07-31 17:12:45 +08:00
  • 24a56044f0 Fixed gravitating particle. JackHsu 2019-07-31 16:57:44 +08:00
  • 5361ee5706 Fixed gravitational force inputs. JackHsu 2019-07-30 13:46:05 +08:00
  • 15ad7182db Added sum reduction. NOTE: Scalar sum does not pass the automated test but vector sum does. I couldn't see anything wrong with the code itself and I strongly suspect that the failures are caused by loss of precision due to summing a huge amount of numbers of different magnitudes. However I'm not yet completely sure. Something like the Kahan summation algorithm might be useful if the errors are really caused by fp arithmetic. jpekkila 2019-07-30 14:28:18 +03:00
  • f7bd84af46 Added macros for getting int3 and AcReal3 device constants from within kernels (and DSL). jpekkila 2019-07-30 09:10:06 +00:00
  • 4e44f3a872 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) jpekkila 2019-07-29 15:35:17 +03:00
  • 5390d68d7c 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 jpekkila 2019-07-29 15:21:15 +03:00
  • a410143c10 Wrote down JPs suggestion for later use. Miikka Vaisala 2019-07-31 10:11:57 +08:00
  • 6b55fce54a Merge branch 'c_standalone_compilation_test_07-23' into node_device_interface_revision_07-23 jpekkila 2019-07-30 14:36:17 +03:00
  • b7c5274f45 Merge branch 'master' into c_standalone_compilation_test_07-23 jpekkila 2019-07-30 14:35:46 +03:00
  • efd9d54fef Stashing WIP changes (interface revision) s.t. I can continue work on a different machine jpekkila 2019-07-30 14:34:44 +03:00
  • 1ceb6739ae Merge branch 'master' into node_device_interface_revision_07-23 jpekkila 2019-07-30 14:31:33 +03:00
  • 62100b1140 Merge branch 'master' of https://bitbucket.org/jpekkila/astaroth jpekkila 2019-07-30 14:28:25 +03:00
  • 69deef66fe Added sum reduction. NOTE: Scalar sum does not pass the automated test but vector sum does. I couldn't see anything wrong with the code itself and I strongly suspect that the failures are caused by loss of precision due to summing a huge amount of numbers of different magnitudes. However I'm not yet completely sure. Something like the Kahan summation algorithm might be useful if the errors are really caused by fp arithmetic. jpekkila 2019-07-30 14:28:18 +03:00
  • fdc1e7333c Added macros for getting int3 and AcReal3 device constants from within kernels (and DSL). jpekkila 2019-07-30 09:10:06 +00:00
  • 34573d7d63 Corrected acciden removal. JackHsu 2019-07-30 13:32:44 +08:00
  • a6dcee2381 Forgot to use lengh() instead of dlength_vec(). JackHsu 2019-07-30 11:50:20 +08:00
  • 0acf52d1b4 Fixed some syntax errors and changed LGRAVITY to LSINK. Will test if this works later. JackHsu 2019-07-30 11:47:18 +08:00
  • d614a03653 Made CMake to use the default compiler on system PATH. If the generic compiler names (cc, c++) point to some old version, then cmake would otherwise use those instead of the latest available compiler. jpekkila 2019-07-29 16:07:31 +03:00
  • a3359b0d04 CONFIG_PATH is now supplied by ac_mkbuilddir. While using would be a bit more idiomatic, ASTAROTH_CONF_PATH is probably safer since ac_mkbuilddir.sh does the copying and knows for sure what the correct path is. jpekkila 2019-07-29 15:55:27 +03:00
  • 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) jpekkila 2019-07-29 15:35:17 +03:00
  • 7b5a02bf0f 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) jpekkila 2019-07-29 15:35:17 +03:00
  • 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 jpekkila 2019-07-29 15:21:15 +03:00
  • 5801144336 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 jpekkila 2019-07-29 15:21:15 +03:00
  • e7a2734ab6 reparied a delection I did by mistake. JackHsu 2019-07-29 18:06:57 +08:00
  • 820132cfe9 I attemped to write a complete LSINK module. Haven't tested how it works but just serve as a save point. JackHsu 2019-07-29 17:53:04 +08:00
  • d1ca196ccd Added declaration of constants for sink particle. Still in the process of understanding how values are passed, but I've realized how physical equations are defined in stencil_process.sps and in principle I can replicate that for sink particle(which will mostly be gravity). JackHsu 2019-07-29 13:18:24 +08:00
  • 7c256d3bb3 Added a comment about a redundant variable jpekkila 2019-07-26 15:13:19 +03:00
  • c9fafe41e5 Tidied the CMakeLists, moved stuff to more logical places and added comments. Also tested that ALTER_CONF=ON still works jpekkila 2019-07-26 15:12:55 +03:00
  • 5044228967 The text editor I use to edit stuff remotely is a complete piece of &^$%$, does not synchronize the files correctly. This commit fixes the issues introduced in the last commit jpekkila 2019-07-26 14:22:22 +03:00
  • b90d261e89 Removed an unnecessary include from the root CMakeLists.txt jpekkila 2019-07-26 14:18:11 +03:00
  • 818893a0ea Fixed stray comma in CUDA_ARCH_FLAGS jpekkila 2019-07-26 14:10:17 +03:00
  • 89e6f8673f Made corrections to some formatting issues. JackHsu 2019-07-26 16:53:39 +08:00
  • 9d625688ac Apparently my edit this time was unsuccessful, tons of error messeages showed up when I ran "make -j" command in working directory. However this commit is mainly for education purposes, it's so that Miikka (main) and others can see what I changed easily and can use as teaching reference. JackHsu 2019-07-26 16:22:04 +08:00
  • 67d9f19006 Merge branch 'master' into sink_20190723 JackHsu 2019-07-24 11:10:16 +08:00
  • 58a3f48389 Second ever commits! JackHsu 2019-07-24 11:01:26 +08:00
  • cd7f6f7939 "Hello world!", my first commit. Tzu-Chun Hsu 2019-07-24 10:20:13 +08:00
  • 26316a4d15 The standalone library is now compiled in parallel with the core library. Slightly faster. jpekkila 2019-07-23 21:26:58 +03:00
  • be44354b33 Astaroth does not require any additional libraries to be included, which is good. Previously required CUDA and C/C++ math libraries. jpekkila 2019-07-23 21:03:42 +03:00
  • f0d1fba55c The pure C test works again. jpekkila 2019-07-23 21:00:00 +03:00
  • f322bc8b37 Rewrote all CMakeLists. Now much cleaner and there's a clear separation during compilation between the core and standalone modules. jpekkila 2019-07-23 20:50:37 +03:00
  • b65454d523 Stashed some testing files used to make sure that the library can also be used from pure C projects (better compatibility). These changes will never go to master as-is. jpekkila 2019-07-23 18:24:47 +03:00
  • 0282f45077 Forgot extern C jpekkila 2019-07-23 16:11:17 +03:00
  • 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. jpekkila 2019-07-23 16:06:54 +03:00
  • c98e730397 Added extern C to the include headers jpekkila 2019-07-23 15:02:54 +03:00
  • 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++. jpekkila 2019-07-23 14:56:41 +03:00
  • 97d5b2e04a Formatting jpekkila 2019-07-23 14:39:36 +03:00
  • 323d4e3b31 Replaced all calls to AC_VTXBUF_IDX to acVertexBufferIdx etc in all files jpekkila 2019-07-23 14:37:28 +03:00
  • 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. jpekkila 2019-07-23 13:44:43 +03:00
  • 1b6e6a6bac Example for Jack. Creating sink branch. Miikka Vaisala 2019-07-23 15:44:39 +08:00
  • fee03b7149 Moved some device limits used only during auto-optimization from astaroth.h to device.cu jpekkila 2019-07-22 19:54:46 +03:00
  • 85883dbc38 NUM_INT_PARAM_TYPES is now NUM_INT_PARAMS etc, replaced these throughout the project jpekkila 2019-07-22 19:53:45 +03:00
  • 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 jpekkila 2019-07-22 19:49:29 +03:00
  • f74df5339f Cleaned up the include directory: removed all unnecessary stuff and moved common definitions to a separate file jpekkila 2019-07-22 19:46:45 +03:00
  • 84af939e5d The default benchmark is now more suitable for timing multi-GPU performance jpekkila 2019-07-22 13:08:33 +03:00
  • 01a013f3bc Added WARNCHK_CUDA_ALWAYS to errchk.h jpekkila 2019-07-22 13:05:08 +03:00
  • a950be99f2 Streams now created with priority (all streams have the same priority by default) jpekkila 2019-07-22 13:04:04 +03:00
  • 168b3c4d8b Peer access to neighboring GPUs is now enabled during initialization jpekkila 2019-07-22 13:02:19 +03:00
  • 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. jpekkila 2019-07-22 12:58:28 +03:00
  • a8caad1ade A draft of the sink particle plan. Miikka Vaisala 2019-07-18 17:34:09 +08:00
  • 8f46fc1c64 Documentation for the planned sink particle property. Miikka Vaisala 2019-07-18 16:20:00 +08:00
  • eb589def71 Added some additional warning flags for gcc. Disabled them by default until I get the new warnings fixed. jpekkila 2019-07-18 08:34:52 +03:00
  • 074fb26df9 Added TODO_SINK comments. Miikka Vaisala 2019-07-17 14:05:48 +08:00
  • 78aba6428e Updated the copyright years throughout the project jpekkila 2019-07-16 14:28:32 +03:00
  • 93fc121f5c Introduced versions of the asynchronous functions which take a stream as a parameter jpekkila 2019-07-10 15:49:21 +03:00
  • bd98eaf9f7 Added a stream to loadDeviceConstant call. jpekkila 2019-07-10 15:29:54 +03:00
  • b08d5b26f5 cudaMemcpyToSymbol -> cudaMemcpyToSymbolAsync jpekkila 2019-07-10 15:05:57 +03:00
  • 976bf05c8d Wrong scope for num_iterations in the last commit, fixed jpekkila 2019-07-10 14:37:32 +03:00
  • 866ec8a192 Removed some old hack I used for benchmarking a while back jpekkila 2019-07-10 14:34:05 +03:00
  • 9af7193ffb bitbucket-pipelines.yml edited online with Bitbucket jpekkila 2019-07-10 10:24:28 +00:00
  • 4eb1f74140 bitbucket-pipelines.yml edited online with Bitbucket jpekkila 2019-07-10 10:12:17 +00:00
  • a0d4f574b1 bitbucket-pipelines.yml edited online with Bitbucket jpekkila 2019-07-10 10:07:01 +00:00
  • 22b30d8c78 bitbucket-pipelines.yml edited online with Bitbucket jpekkila 2019-07-10 09:46:29 +00:00
  • f38456757e bitbucket-pipelines.yml edited online with Bitbucket jpekkila 2019-07-10 09:42:14 +00:00
  • 897a5c820c Revert "bitbucket-pipelines.yml edited online with Bitbucket" jpekkila 2019-07-10 12:34:50 +03:00
  • 499bc1966f Revert "bitbucket-pipelines.yml edited online with Bitbucket" jpekkila 2019-07-10 12:34:36 +03:00
  • b27f598a86 bitbucket-pipelines.yml edited online with Bitbucket jpekkila 2019-07-10 09:28:30 +00:00
  • 18e7a727c5 bitbucket-pipelines.yml edited online with Bitbucket jpekkila 2019-07-10 09:20:23 +00:00
  • e14e19774d Added a synchronization to benchmark.cc that is now required when calling acIntegrateStep jpekkila 2019-07-09 19:03:45 +03:00
  • 8cc9281045 Double versions of some sqrt, cos and sin were used in model_rk3.cc instead of the long double versions, fixed. jpekkila 2019-07-09 19:03:15 +03:00
  • e6c770cbee Added a synchronization after acLoadDeviceConstant since it is now stated to be asynchronous jpekkila 2019-07-09 19:00:08 +03:00
  • d0b95c39b6 Disabled writing out unnecessary files when auto-optimizing the code jpekkila 2019-07-09 18:51:04 +03:00
  • 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. jpekkila 2019-07-09 18:42:00 +03:00
  • 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. jpekkila 2019-07-09 17:08:18 +03:00
  • 6c7b2dbd8d Merge branch 'master' into multigpu_optimization_2019-07-05 jpekkila 2019-07-09 16:44:55 +03:00
  • 6ec5e5a2c6 bitbucket-pipelines.yml edited online with Bitbucket jpekkila 2019-07-09 13:21:16 +00:00
  • bc6f91f610 bitbucket-pipelines.yml edited online with Bitbucket jpekkila 2019-07-09 12:53:50 +00:00
  • fba09d2427 bitbucket-pipelines.yml edited online with Bitbucket jpekkila 2019-07-09 12:51:36 +00:00
  • afb17c78d4 bitbucket-pipelines.yml edited online with Bitbucket jpekkila 2019-07-09 12:48:14 +00:00
  • 314f3c1fcc bitbucket-pipelines.yml edited online with Bitbucket jpekkila 2019-07-09 12:31:16 +00:00
  • 5ceb8ddb7e bitbucket-pipelines.yml edited online with Bitbucket jpekkila 2019-07-09 12:26:08 +00:00
  • d56e6f1492 Initial Bitbucket Pipelines configuration jpekkila 2019-07-09 12:23:15 +00:00
  • 10a98b01a9 Experimental change: now the integration function is automatically optimized during acInit jpekkila 2019-07-09 14:46:24 +03:00
  • a086821e7c Added a function acAutoOptimize to the interface and removed rk3_step_async in kernels.cuh (moved into rkStep) jpekkila 2019-07-09 14:21:22 +03:00
  • 84d96de42b Merge branch 'master' into multigpu_optimization_2019-07-05 jpekkila 2019-07-09 13:40:33 +03:00
  • 508d15b578 Switched from math.h to cmath in math_utils.h. The old-school C math functions are bugged/not overloaded properly in GCC < 6.0 when compiling C++. jpekkila 2019-07-09 13:37:08 +03:00