jpekkila
|
4ce51ea60e
|
Now the generated CUDA header files are completely local (placed in the build directory) instead of depending on some predefined directory structure. This allows users to swap between build directories without having to recompile.
|
2019-09-12 20:11:21 +03:00 |
|
jpekkila
|
e8745e282a
|
Added the library API specification
|
2019-09-12 19:34:43 +03:00 |
|
jpekkila
|
021e5f3774
|
Renamed NUM_STREAM_TYPES -> NUM_STREAMS
|
2019-09-12 15:48:38 +03:00 |
|
jpekkila
|
53230c9b61
|
Added errorchecking and more flexibility the the new acDeviceLoadScalarArray function
|
2019-09-05 19:56:04 +03:00 |
|
jpekkila
|
71695b7c12
|
Added WIP stuff to the API specification
|
2019-09-05 19:55:16 +03:00 |
|
jpekkila
|
263a1d23a3
|
Added a function for loading ScalarArrays to the GPU
|
2019-09-05 16:35:08 +03:00 |
|
jpekkila
|
cdb504e772
|
Added a proof-of-concept helical forcing which uses the newly introduced ScalarArrays for reading profiles. Not extensively tested.
|
2019-09-02 21:29:07 +03:00 |
|
jpekkila
|
9e57aba9b7
|
New feature: ScalarArray. ScalarArrays are read-only 1D arrays containing max(mx, max(my, mz)) elements. ScalarArray is a new type of uniform and can be used for storing f.ex. forcing profiles. The DSL now also supports complex numbers and some basic arithmetic (exp, multiplication)
|
2019-09-02 21:26:57 +03:00 |
|
jpekkila
|
18df9e5579
|
Added a parameter for passing a custom include dir to compile_acc
|
2019-09-02 20:15:27 +03:00 |
|
jpekkila
|
c0ba08133d
|
Merged in dsl_feature_completeness_2019-08-27_V2 (pull request #7)
Dsl feature completeness 2019 08 27 V2
Approved-by: Miikka Väisälä <mvaisala@asiaa.sinica.edu.tw>
|
2019-09-02 02:41:13 +00:00 |
|
jpekkila
|
be9ec6293b
|
Merged in dsl_parameter_overhaul_2019-08-19 (pull request #6)
DSL user parameter overhaul
|
2019-08-30 02:13:35 +00:00 |
|
jpekkila
|
bd549f5d28
|
Revised the publications section in the API & DSL specification
|
2019-08-29 15:14:40 +03:00 |
|
jpekkila
|
5a878b285c
|
Merge branch 'master' of https://bitbucket.org/jpekkila/astaroth
|
2019-08-28 21:06:17 +03:00 |
|
jpekkila
|
f77ec836c7
|
Added a WIP API, DSL specification and user manual
|
2019-08-28 21:06:05 +03:00 |
|
jpekkila
|
6ea02fa28e
|
DSL now 'feature complete' with respect to what I had in mind before the summer. Users can now create multiple kernels and the library functions are generated automatically for them. The generated library functions are of the form acDeviceKernel_<name> and acNodeKernel_<name>. More features are needed though. The next features to be added at some point are 1D and 2D device constant arrays in order to support profiles for f.ex. forcing.
|
2019-08-27 18:19:20 +03:00 |
|
jpekkila
|
230230ead9
|
Added a script for preprocessing the device files. Useful for inspecting whether the DSL code is generated correctly.
|
2019-08-27 18:15:30 +03:00 |
|
jpekkila
|
20138263f4
|
The previous attempt (dsl_feature_completeness_2019-08-23) to enable arbitrary kernel functions was a failure: we get significant performance loss (25-100%) if step_number is not passed as a template parameter to the integration kernel. Apparently the CUDA compiler cannot perform some optimizations if there is a if/else construct in a performance-critical part which cannot be evaluated at compile time. This branch keeps step_number as a template parameter but takes rest of the user parameters as uniforms (dt is no longer passed as a function parameter but as an uniform with the DSL instead).
|
2019-08-27 17:36:33 +03:00 |
|
Miikka Vaisala
|
0616f89385
|
Could be used in some documentation demonstrating domain decomposition.
|
2019-08-27 11:06:37 +08:00 |
|
jpekkila
|
9fa39b66fc
|
Reverted an accidentally modified astaroth.conf to the same version as in master
|
2019-08-26 18:33:50 +03:00 |
|
jpekkila
|
022e46f2e7
|
Merge branch 'master' into dsl_parameter_overhaul_2019-08-19
|
2019-08-23 13:13:57 +03:00 |
|
jpekkila
|
f6040f89dc
|
Added acPrintMeshInfo for printing all mesh parameters
|
2019-08-21 16:24:48 +03:00 |
|
jpekkila
|
d52e002e5d
|
Made Astaroth Standalone a library component (still works as before but can be included in other projects which need f.ex. autotesting)
|
2019-08-21 16:18:48 +03:00 |
|
jpekkila
|
5867ff4b3e
|
Stashing MPItest changes
|
2019-08-21 16:16:12 +03:00 |
|
jpekkila
|
39dcda4a04
|
Made warnings about unused functions go away (this is intended functionality and not all programs will use all types of device constants, thus unnecessary warning)
|
2019-08-21 14:28:46 +03:00 |
|
jpekkila
|
5d2b658fb0
|
Autoformatted the DSL files
|
2019-08-20 18:41:26 +03:00 |
|
jpekkila
|
73d393e419
|
Changed order for linking the MPI library to work around cmake error on CMP0004
|
2019-08-20 18:40:38 +03:00 |
|
jpekkila
|
5b7408eb55
|
User config param overhaul complete, works. If I haven't missed anything, all fields and user parameters, and everything related to simulation can now be declared with the DSL. The only thing that you need to do is to fill the declared symbols with data, like with OpenGL and GLSL.
|
2019-08-19 18:43:16 +03:00 |
|
jpekkila
|
51cf1f1068
|
The C header is now generated from the DSL, stashing the changes just to be sure since I might overwrite something when updating the compilation scripts to work with this new scheme
|
2019-08-19 18:19:28 +03:00 |
|
jpekkila
|
d801ebdd41
|
Now parameters and vertexbuffers (fields) can be declared with the DSL only. TODO: translation from the DSL header to C
|
2019-08-19 17:35:03 +03:00 |
|
jpekkila
|
bcdd827a4f
|
Added a proper declarations for all user-specified uniform. Note: built-in uniforms are not correctly translated into CUDA
|
2019-08-19 17:05:56 +03:00 |
|
jpekkila
|
0208d55e4e
|
Moved STENCIL_ORDER and NGHOST out of user-defined parameter as these are actually internal defines used to configure the built-in functions. Additionally, renamed all explicitly declared uniforms from dsx -> AC_dsx in the DSL in preparation for having clear connection between DSL uniforms and the library parameter handles created by the user (AcRealParam etc)
|
2019-08-19 16:40:47 +03:00 |
|
jpekkila
|
c98b74563c
|
Added a comment
|
2019-08-19 16:18:24 +03:00 |
|
jpekkila
|
b316e51267
|
Added preliminary code for generating C headers with the DSL
|
2019-08-19 16:16:26 +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
|
3369d8efec
|
Added a missing include
|
2019-08-12 11:44:27 +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
|
fdadd463b7
|
Included the user-defined header after the definition of AcReal to make it available if needed.
|
2019-08-09 17:11:21 +03:00 |
|
jpekkila
|
bc0276ba2d
|
Merged in dsl_syntax_revision_08008 (pull request #5)
Dsl syntax revision 08008
Approved-by: Miikka Väisälä <mvaisala@asiaa.sinica.edu.tw>
|
2019-08-09 05:16:37 +00:00 |
|
jpekkila
|
a7a7b535d6
|
The code generator now generates more efficient CUDA: built-in parameters are passed as const references without copying
|
2019-08-08 21:35:07 +03:00 |
|