5361ee5706Fixed gravitational force inputs.
JackHsu
2019-07-30 13:46:05 +08:00
15ad7182dbAdded 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
f7bd84af46Added macros for getting int3 and AcReal3 device constants from within kernels (and DSL).
jpekkila
2019-07-30 09:10:06 +00:00
4e44f3a872The 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
5390d68d7cac_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
a410143c10Wrote down JPs suggestion for later use.
Miikka Vaisala
2019-07-31 10:11:57 +08:00
6b55fce54aMerge branch 'c_standalone_compilation_test_07-23' into node_device_interface_revision_07-23
jpekkila
2019-07-30 14:36:17 +03:00
b7c5274f45Merge branch 'master' into c_standalone_compilation_test_07-23
jpekkila
2019-07-30 14:35:46 +03:00
efd9d54fefStashing WIP changes (interface revision) s.t. I can continue work on a different machine
jpekkila
2019-07-30 14:34:44 +03:00
1ceb6739aeMerge branch 'master' into node_device_interface_revision_07-23
jpekkila
2019-07-30 14:31:33 +03:00
69deef66feAdded 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
fdc1e7333cAdded macros for getting int3 and AcReal3 device constants from within kernels (and DSL).
jpekkila
2019-07-30 09:10:06 +00:00
a6dcee2381Forgot to use lengh() instead of dlength_vec().
JackHsu
2019-07-30 11:50:20 +08:00
0acf52d1b4Fixed some syntax errors and changed LGRAVITY to LSINK. Will test if this works later.
JackHsu
2019-07-30 11:47:18 +08:00
d614a03653Made 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
a3359b0d04CONFIG_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
9796d5e981The 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
7b5a02bf0fThe 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
abe4dfb4feac_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
5801144336ac_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
e7a2734ab6reparied a delection I did by mistake.
JackHsu
2019-07-29 18:06:57 +08:00
820132cfe9I 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
d1ca196ccdAdded 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
7c256d3bb3Added a comment about a redundant variable
jpekkila
2019-07-26 15:13:19 +03:00
c9fafe41e5Tidied 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
5044228967The 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
b90d261e89Removed an unnecessary include from the root CMakeLists.txt
jpekkila
2019-07-26 14:18:11 +03:00
818893a0eaFixed stray comma in CUDA_ARCH_FLAGS
jpekkila
2019-07-26 14:10:17 +03:00
89e6f8673fMade corrections to some formatting issues.
JackHsu
2019-07-26 16:53:39 +08:00
9d625688acApparently 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
67d9f19006Merge branch 'master' into sink_20190723
JackHsu
2019-07-24 11:10:16 +08:00
cd7f6f7939"Hello world!", my first commit.
Tzu-Chun Hsu
2019-07-24 10:20:13 +08:00
26316a4d15The standalone library is now compiled in parallel with the core library. Slightly faster.
jpekkila
2019-07-23 21:26:58 +03:00
be44354b33Astaroth 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
f0d1fba55cThe pure C test works again.
jpekkila
2019-07-23 21:00:00 +03:00
f322bc8b37Rewrote 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
b65454d523Stashed 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
0282f45077Forgot extern C
jpekkila
2019-07-23 16:11:17 +03:00
e5172e2a9aMoved 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
c98e730397Added extern C to the include headers
jpekkila
2019-07-23 15:02:54 +03:00
c0774bc3b8Added 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
323d4e3b31Replaced all calls to AC_VTXBUF_IDX to acVertexBufferIdx etc in all files
jpekkila
2019-07-23 14:37:28 +03:00
27f4d1e4ffAdded 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
fee03b7149Moved some device limits used only during auto-optimization from astaroth.h to device.cu
jpekkila
2019-07-22 19:54:46 +03:00
85883dbc38NUM_INT_PARAM_TYPES is now NUM_INT_PARAMS etc, replaced these throughout the project
jpekkila
2019-07-22 19:53:45 +03:00
074eae0baeAdded 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
f74df5339fCleaned 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
84af939e5dThe default benchmark is now more suitable for timing multi-GPU performance
jpekkila
2019-07-22 13:08:33 +03:00
01a013f3bcAdded WARNCHK_CUDA_ALWAYS to errchk.h
jpekkila
2019-07-22 13:05:08 +03:00
a950be99f2Streams now created with priority (all streams have the same priority by default)
jpekkila
2019-07-22 13:04:04 +03:00
168b3c4d8bPeer access to neighboring GPUs is now enabled during initialization
jpekkila
2019-07-22 13:02:19 +03:00
0db61dd411Disabled 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
a8caad1adeA draft of the sink particle plan.
Miikka Vaisala
2019-07-18 17:34:09 +08:00
8f46fc1c64Documentation for the planned sink particle property.
Miikka Vaisala
2019-07-18 16:20:00 +08:00
eb589def71Added 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
976bf05c8dWrong scope for num_iterations in the last commit, fixed
jpekkila
2019-07-10 14:37:32 +03:00
866ec8a192Removed some old hack I used for benchmarking a while back
jpekkila
2019-07-10 14:34:05 +03:00
9af7193ffbbitbucket-pipelines.yml edited online with Bitbucket
jpekkila
2019-07-10 10:24:28 +00:00
4eb1f74140bitbucket-pipelines.yml edited online with Bitbucket
jpekkila
2019-07-10 10:12:17 +00:00
a0d4f574b1bitbucket-pipelines.yml edited online with Bitbucket
jpekkila
2019-07-10 10:07:01 +00:00
22b30d8c78bitbucket-pipelines.yml edited online with Bitbucket
jpekkila
2019-07-10 09:46:29 +00:00
f38456757ebitbucket-pipelines.yml edited online with Bitbucket
jpekkila
2019-07-10 09:42:14 +00:00
897a5c820cRevert "bitbucket-pipelines.yml edited online with Bitbucket"
jpekkila
2019-07-10 12:34:50 +03:00
499bc1966fRevert "bitbucket-pipelines.yml edited online with Bitbucket"
jpekkila
2019-07-10 12:34:36 +03:00
b27f598a86bitbucket-pipelines.yml edited online with Bitbucket
jpekkila
2019-07-10 09:28:30 +00:00
18e7a727c5bitbucket-pipelines.yml edited online with Bitbucket
jpekkila
2019-07-10 09:20:23 +00:00
e14e19774dAdded a synchronization to benchmark.cc that is now required when calling acIntegrateStep
jpekkila
2019-07-09 19:03:45 +03:00
8cc9281045Double 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
e6c770cbeeAdded a synchronization after acLoadDeviceConstant since it is now stated to be asynchronous
jpekkila
2019-07-09 19:00:08 +03:00
d0b95c39b6Disabled writing out unnecessary files when auto-optimizing the code
jpekkila
2019-07-09 18:51:04 +03:00
0bda016e17Reviewed 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
1251f61570Removed 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
6c7b2dbd8dMerge branch 'master' into multigpu_optimization_2019-07-05
jpekkila
2019-07-09 16:44:55 +03:00
6ec5e5a2c6bitbucket-pipelines.yml edited online with Bitbucket
jpekkila
2019-07-09 13:21:16 +00:00
bc6f91f610bitbucket-pipelines.yml edited online with Bitbucket
jpekkila
2019-07-09 12:53:50 +00:00
fba09d2427bitbucket-pipelines.yml edited online with Bitbucket
jpekkila
2019-07-09 12:51:36 +00:00
afb17c78d4bitbucket-pipelines.yml edited online with Bitbucket
jpekkila
2019-07-09 12:48:14 +00:00
314f3c1fccbitbucket-pipelines.yml edited online with Bitbucket
jpekkila
2019-07-09 12:31:16 +00:00
5ceb8ddb7ebitbucket-pipelines.yml edited online with Bitbucket
jpekkila
2019-07-09 12:26:08 +00:00
10a98b01a9Experimental change: now the integration function is automatically optimized during acInit
jpekkila
2019-07-09 14:46:24 +03:00
a086821e7cAdded 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
84d96de42bMerge branch 'master' into multigpu_optimization_2019-07-05
jpekkila
2019-07-09 13:40:33 +03:00
508d15b578Switched 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