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 |
|
jpekkila
|
d56e6f1492
|
Initial Bitbucket Pipelines configuration
|
2019-07-09 12:23:15 +00:00 |
|
jpekkila
|
10a98b01a9
|
Experimental change: now the integration function is automatically optimized during acInit
|
2019-07-09 14:46:24 +03:00 |
|
jpekkila
|
a086821e7c
|
Added a function acAutoOptimize to the interface and removed rk3_step_async in kernels.cuh (moved into rkStep)
|
2019-07-09 14:21:22 +03:00 |
|
jpekkila
|
84d96de42b
|
Merge branch 'master' into multigpu_optimization_2019-07-05
|
2019-07-09 13:40:33 +03:00 |
|
jpekkila
|
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++.
|
2019-07-09 13:37:08 +03:00 |
|
jpekkila
|
deebe570da
|
Merge branch 'master' into multigpu_optimization_2019-07-05
|
2019-07-08 16:11:24 +03:00 |
|
jpekkila
|
eda2f6543b
|
Created a new ForcingParams structure and some functions for generating and transferring the forcing parameters to the host/device
|
2019-07-08 15:43:37 +03:00 |
|
Miikka Vaisala
|
f9be905703
|
Corrected an unit coversion issue from forcing.
Now noticing these because of switching to gcc 8.
|
2019-07-08 16:43:37 +08:00 |
|
Miikka Vaisala
|
df1ba6264a
|
Update to readme.
|
2019-07-08 11:08:45 +08:00 |
|
Miikka Vaisala
|
6ba15c3a7c
|
props.totalConstMem and props.sharedMemPerBlock cause assembler error
while compiling on TIARA gp cluster. Therefore commeted out.
|
2019-07-08 11:00:12 +08:00 |
|
jpekkila
|
5fdfdeca9e
|
Multi-GPU optimizations: removed some unnecessary synchronization and divided the calculation of boundary conditions to local and global steps.
|
2019-07-05 18:21:44 +03:00 |
|
jpekkila
|
f1066a2c11
|
Added preliminary pragmas for dispatching commands simultaneously to multiple GPUs (commented out)
|
2019-07-05 17:16:12 +03:00 |
|
jpekkila
|
2092adc0f6
|
Preparations for multi-GPU optimizations
|
2019-07-05 15:44:30 +03:00 |
|
jpekkila
|
ce8fe53f91
|
Moved explanations and comments to the beginning of astaroth.cu. No code changes.
|
2019-07-05 15:39:52 +03:00 |
|
jpekkila
|
d87eb36f5a
|
Formatting: brackets around a for loop for consistency
|
2019-07-05 15:26:19 +03:00 |
|
jpekkila
|
224b91b83a
|
Added more control for synchronizing streams and halos among the GPUs
|
2019-07-05 15:17:20 +03:00 |
|
jpekkila
|
332f1a4f40
|
Reordered some of the functions in astaroth.cu and introduced acExchangeHalos() for synchronizing the part of the grid that is independent from the chosen boundary conditions between subgrids.
|
2019-07-05 15:01:51 +03:00 |
|
jpekkila
|
c71711ec36
|
Disabled real-time visualization by default. SDL2 is no longer a dependency when building with the default flags.
|
2019-07-04 22:30:26 +03:00 |
|
jpekkila
|
ad7a497eef
|
Added a comment about timestepping and autoformat
|
2019-07-04 17:25:54 +03:00 |
|
jpekkila
|
d1a93b7d4e
|
acIntegrateStepWithOffset corrected and confirmed to work on 1-4 GPUs
|
2019-07-04 16:58:24 +03:00 |
|
jpekkila
|
01437411b6
|
Comment
|
2019-07-04 16:39:20 +03:00 |
|
jpekkila
|
91f119e8dd
|
Deprecated the old implementation of acIntegrateStep. acIntegrateStep now calls acIntegrateStepWithOffset instead of device.cuh functions.
|
2019-07-04 16:37:55 +03:00 |
|
jpekkila
|
5049dadc1c
|
Implemented acIntegrateStepWithOffset
|
2019-07-04 16:31:16 +03:00 |
|
jpekkila
|
a53e0a170d
|
Overloaded max/min for int3 and removed old comments
|
2019-07-04 16:24:08 +03:00 |
|
jpekkila
|
e1d545b0eb
|
Code readability and cleanup (remembered that int3 has + and - operators defined in math_utils.h)
|
2019-07-04 16:16:49 +03:00 |
|
jpekkila
|
30254d9abb
|
Removed a redundant and old gridIdxx function which I though I already removed a long time ago.
|
2019-07-04 16:10:29 +03:00 |
|
jpekkila
|
b3a0b10a86
|
Removed old comments
|
2019-07-04 16:02:13 +03:00 |
|
jpekkila
|
24f49ce461
|
Host code now compiled according to the C++11 standard. The device code has used C++11 for a while now and it's good to use a single standard consistently throughout the project. Old Intel compilers (~14.0) do not seem to support C++11 but the code should still compile since the flag is ignored in that case.
|
2019-07-04 16:01:02 +03:00 |
|
jpekkila
|
0884c4bf38
|
Moved the definition of acForcingVec to host_forcing.cc since it depends on user parameters that may not be defined in all projects
|
2019-07-04 15:28:18 +03:00 |
|
jpekkila
|
698d04c57d
|
Removed a deprecated code block
|
2019-07-04 15:08:42 +03:00 |
|
jpekkila
|
317df4c025
|
Re-enabled the check for implicit float-double-float conversions with gcc
|
2019-07-04 13:45:09 +03:00 |
|
jpekkila
|
edafe5a563
|
Made the gcc version check more lenient
|
2019-07-04 13:43:49 +03:00 |
|
Miikka Vaisala
|
b65a0750cc
|
Updated CUDA version on README
|
2019-07-04 14:14:24 +08:00 |
|