Commit Graph

209 Commits

Author SHA1 Message Date
jpekkila
f6040f89dc Added acPrintMeshInfo for printing all mesh parameters 2019-08-21 16:24:48 +03:00
jpekkila
787363226b Added functions for loading int, int3, scalar and vector constants to the device layer (acDeviceLoad...Constant) 2019-08-19 15:28:16 +03:00
jpekkila
41805dcb68 Added some error checking for the case where user supplies an incomplete meshinfo to acDeviceLoadMeshInfo 2019-08-19 15:17:51 +03:00
jpekkila
598799d7c3 Added a new function to the device interface: acDeviceLoadMeshInfo 2019-08-19 15:14:00 +03:00
jpekkila
e89897985e Battled with math.h and cmath. We probably should move from C standard libraries to C++ ones internally (in places which are not visible via the interface) 2019-08-19 14:02:30 +03:00
jpekkila
6d4d53342e Removed old comments 2019-08-15 11:14:52 +03:00
jpekkila
aa45ce04de Made the linear algebra functions used in forcing.cc static to avoid collisions with the functions defined in math_utils.h 2019-08-15 11:09:40 +03:00
jpekkila
36fea70560 Moved basic built-in functions for vector operations to math_utils.h from integration.cuh so that they are shared with the CPU and GPU 2019-08-15 11:04:22 +03:00
jpekkila
d5b2e5bb42 Added placeholders for new built-in variables in the DSL. Also overloads to DCONST_INT etc. Naming still pending and old DCONST_REAL etc calls still work. 2019-08-12 14:05:35 +03:00
jpekkila
b8c4d07de2 Removed unnecessary comments 2019-08-12 13:31:24 +03:00
jpekkila
e027f7e548 Removed grid_n in astaroth.cu and replaced it with the new acNodeQueryDeviceConfiguration call 2019-08-12 13:25:47 +03:00
jpekkila
bba9ec7c3b Implemented acNodeQueryDeviceConfiguration 2019-08-12 11:40:38 +03:00
jpekkila
b5daf22c26 Added interface function acSynchronizeMesh 2019-08-12 10:25:05 +03:00
jpekkila
8bbb2cd5df Now prints device info before trying to run the dummy kernel 2019-08-12 09:46:37 +03:00
jpekkila
b53cabbc44 Made the DSL syntax less confusing: Input and output arrays are now ScalarField and VectorFields instead of scalars and vectors. C++ initializers are now also possible, removing the need to declare Fields as int or int3 which was very confusing, like "what, you assing an int value to a real, what the &^%@?" 2019-08-08 21:07:36 +03:00
jpekkila
5397495496 Added acLoadWithOffset 2019-08-08 20:43:01 +03:00
jpekkila
e79e1207f2 Added a function for checking whether CUDA-capable devices are available 2019-08-08 20:35:02 +03:00
jpekkila
8a9099d75e Added missing functions to fix backwards compatibility with the version interfaced with Pencil Code 2019-08-08 19:49:57 +03:00
jpekkila
168cdc9109 Fixed a float/long double conversion that some complainers... um compilers complain about 2019-08-08 18:12:24 +03:00
jpekkila
322cdce52c Added some new comments + some helpful old comments from a time before the interface revision 2019-08-07 20:05:54 +03:00
jpekkila
2b3f9d75af Ensured that acBoundcondStep is called everywhere in the program before acStore 2019-08-07 19:20:40 +03:00
jpekkila
d8eb2723b4 Added an acBoundconds() call before acStore in autotest.cc 2019-08-07 19:10:04 +03:00
jpekkila
1525e0603f Added some preliminary pragma omps and verified that acIntegrate works as it should. 2019-08-07 19:08:52 +03:00
jpekkila
c2bd5ae3e6 Simplified the optimized multi-GPU integration function 2019-08-07 18:17:03 +03:00
jpekkila
10200e4dd5 Merge branch 'master' into node_device_interface_revision_07-23 2019-08-07 16:25:33 +03:00
jpekkila
e2f5cced1e Renamed dox -> dot 2019-08-07 16:08:03 +03:00
jpekkila
b61617ee0f Enabled upwinding by default and updated the model helical forcing with the hotfixed changes from earlier commits. Autotests kinda pass (we get 1 failure but this is likely due to inaccuracies of the trigonometric functions used in helical forcing. The error is very close to the acceptable error bound). 2019-08-07 15:53:38 +03:00
Miikka Vaisala
0bb568642f Still one bug 2019-08-07 19:10:39 +08:00
Miikka Vaisala
738b2abaf3 Supposedly working autotest for upwinding. 2019-08-07 18:57:53 +08:00
Miikka Vaisala
065f20819f Merge branch 'master' into bugfix/upwind_autotest_20190807 2019-08-07 18:23:03 +08:00
Miikka Vaisala
7cc524b78b Adapting for autotest but i, j, k indexing is confusing. 2019-08-07 14:57:51 +08:00
jpekkila
a930864f42 Merge branch 'master' into node_device_interface_revision_07-23 2019-08-07 07:43:28 +03:00
jpekkila
cf6b75f82a Merged in cmakelist_rewrite_and_C_API_conformity_07-26 (pull request #1) 2019-08-07 06:53:17 +03:00
Miikka Vaisala
9af5ba2156 Copied elements in the DSL form.
Needs to be adapted at the next stage.
2019-08-07 11:11:27 +08:00
jpekkila
6b53eb31ef Errors with forcing now down from 3 to 1 after switching from fast & inaccurate trig functions to more accurate ones 2019-08-06 19:29:40 +03:00
jpekkila
d7e26e8f21 Added forcing from stencil_process.sps to autotests. 3 Tests fail. 2019-08-06 19:15:28 +03:00
jpekkila
0e0ace3970 Pure hydro now works with autotests 2019-08-06 18:07:29 +03:00
jpekkila
daee456660 Merge branch 'cmakelist_rewrite_and_C_API_conformity_07-26' into node_device_interface_revision_07-23 2019-08-06 17:57:30 +03:00
jpekkila
abf4815174 Merge branch 'master' into cmakelist_rewrite_and_C_API_conformity_07-26 2019-08-06 17:53:53 +03:00
jpekkila
5870081645 Split kernels.cuh into bounconds.cuh, integration.cuh and reductions.cuh 2019-08-06 17:50:41 +03:00
jpekkila
405fa4d6d6 Moved old kernels to kernels/deprecated 2019-08-06 17:46:52 +03:00
jpekkila
e4d9898f35 Added improvements to autotest.cc 2019-08-06 17:40:27 +03:00
jpekkila
3726847683 Made globalGridN and d_multigpu_offsets built-in parameters. Note the renaming from globalGrid.n to globalGridN. 2019-08-06 16:39:15 +03:00
jpekkila
812b5e170e Added some error checking to rendering 2019-08-06 16:32:36 +03:00
jpekkila
1dd9975528 Formatting 2019-08-06 15:44:51 +03:00
jpekkila
b2632c87b4 Merge branch 'cmakelist_rewrite_and_C_API_conformity_07-26' into node_device_interface_revision_07-23 2019-08-06 15:18:33 +03:00
jpekkila
280804a438 Merge branch 'master' into cmakelist_rewrite_and_C_API_conformity_07-26 2019-08-06 15:14:33 +03:00
jpekkila
e4b981fc62 Removed the O2 flag since cmake still defines the O3 flag in CMAKE_CXX_FLAGS_RELEASE and it's confusing which one gcc chooses if both O3 and O2 are passed during compilation. If the issue was the march=native flag then this should also work on Tiara 2019-08-06 14:59:41 +03:00
jpekkila
5f4246fb42 Standalone now uses O2 optimization level instead of O3. Also removed -march=native since this causes issues if the program is compiled on a different architecture than it is run on. Since we do not do heavy arithmetic on the host side and the host code is not performance-critical part of the code, -march-native is not very useful anyways 2019-08-06 14:46:13 +03:00
jpekkila
b73c2675e8 Added the optimized implementation of acNodeIntegrate where boundconds are done before integration instead of after 2019-08-05 20:10:13 +03:00