Commit Graph

207 Commits

Author SHA1 Message Date
337b0fd649 Fix 'sametag' transfer 2019-12-22 20:20:12 +03:00
a3fca53e97 Separate the computation of newsite into another kernel
This eliminates the need for thread fence and makes the calculation stable on GTX1070 (CUDA and OpenCL) and TitanV
2019-12-07 15:54:20 +03:00
4a51e1660f Add thread fence in kernel to fix Volta indeterminacy 2019-12-07 01:16:39 +03:00
a2f9fa8e78 Separate the computation of hneigh into another kernel
Simplify the main GPU kernel and add another kernel 'k_pair_reneigh'. It works good on GTX1070 (Pascal), but still there is a problem with non-deterministic results on Volta.

I reimplement BaseCharge::compute methods in the child class LJ_TIP4PLong to correctly embed a new kernel in the code.

Also commit includes some codestyle fixes.
2019-12-06 21:41:02 +03:00
66a076b819 Delete "float.h" from TIP4P GPU kernel for better OpenCL compatibility
According to Khronos OpenCL docs, "The C99 standard headers <...>, float.h, <...> are not available and cannot be included by a program"
2019-11-27 19:49:12 +03:00
4febc7f794 Add copyright and fix style 2019-11-18 02:01:32 +03:00
ca8d1ac2ff Simplify tip4p GPU memory resize using 'resize_ib' 2019-11-18 02:01:32 +03:00
f803ba5655 Add shfl_xor sum to kernel for ARCH>=300 2019-11-12 21:35:36 +03:00
64bdc59623 Implement GPU pair style lj/cut/tip4p/long/gpu
Source code, Makefiles and Install for GPU-accelerated TIP4P pair style.
It is implemented as a part of the standard GPU package.
The style is compatible with the standard  lj/cut/tip4p/long.
Also, this commit modifies "atom.h" just to
add a getter for variable 'max_same'.
2019-11-10 02:38:58 +03:00
a0d74ca2ae Bug fix for gay-berne potential when mu != 1.0. 2019-10-27 22:31:00 -07:00
86f644979c Updated pppm 2019-10-20 00:18:28 -05:00
dfbee32575 Fixing issues with growing memory allocation with multiple init calls 2019-10-19 23:35:52 -05:00
e832b5d50b make clang++ happy when trying to compile the GPU library 2019-07-12 15:42:16 -04:00
46a9772a6d Minor clean-up 2019-07-05 12:12:29 -05:00
49f27573a7 Fixed a bug in lj96 involving missing the special_lj factor 2019-07-03 23:44:33 -05:00
8c3d18520d add missing include needed on ppc64le 2019-06-26 10:45:31 -06:00
2f29bd29f4 Merge pull request #1430 from ndtrung81/gpu-neigh-hybrid
Enable neighbor build on the device for pair hybrid substyles
2019-06-17 14:12:40 -04:00
8145c5028d Fix OpenCL compilation errors due to bad comments in macros 2019-04-30 00:44:12 -04:00
4a4297591e Did some more cleanups 2019-04-17 12:04:31 -05:00
1f43efc111 Cleaned up the changes in Device and the base class of the pair styles 2019-04-17 00:09:49 -05:00
c55009a0ac Enabled neighbor list build on the device with pair_style hybrid and hybrid/overlay 2019-04-16 23:30:25 -05:00
cd6b23d104 explicitly request OpenCL version 1.2 compatibility when compiling GPU package kernels for OpenCL 2019-03-22 09:50:31 -04:00
8ee1fefe19 add pointer to README and Manual to help. 2019-01-31 18:46:43 -05:00
763dda64af update lib/gpu/README to current state 2019-01-31 18:45:17 -05:00
1465352454 some cleanups and small bugfixes to conform better with python conventions 2019-01-28 17:37:05 -05:00
c3a15e221d use sys.exit() instead of the removed error() function 2019-01-14 14:13:40 -05:00
1e1f754d0c make gpu library Install.py use argparse module 2019-01-14 12:52:21 -05:00
4168855ba3 reduce distracting nvcc (or rather ptxas) verbosity 2018-12-03 19:27:03 -05:00
e5c555fa7d consolidate shared code from various Install.py files into install_helpers.py 2018-12-03 17:50:20 -05:00
eda79bd1c2 use shutil.rmtree() instead of calling 'rm -rf' for increased portability 2018-11-28 20:46:50 -05:00
f254b8e3a3 Merge pull request #1226 from akohlmey/cmake-gpu-enhancements
Enhancements for using CMake with the GPU package, improved compatibility with cmake 3.x versions, improved handling of shared library building.
2018-11-27 16:05:47 -05:00
5df2f92651 minor cleanup in lib/gpu 2018-11-26 18:22:33 -05:00
e0ff230268 remove comment-in-comment 2018-11-26 17:03:48 -05:00
ccacf0d4bb Merge pull request #1048 from lammps/doc-reorg-start
Documentation Refactoring: Section Start
2018-08-15 15:25:17 -06:00
9c3748e07c change Python.txt to Python_head.txt, adapt GPU package syntax 2018-08-15 07:31:31 -06:00
7ec52784cb more changes to doc pages and CMakeLists.txt 2018-08-14 15:44:25 -06:00
65d11171c4 Replace functions which were deprecated since CUDA 5 2018-08-09 03:36:21 -04:00
6d60075d3b GPU Package: Use __shfl_xor_sync starting with CUDA 9 2018-08-09 02:33:35 -04:00
ac7aeb6862 Add extra check for OpenCL timers
Fixes issue #1034 by preventing time() to access non-existent OpenCL events
2018-08-07 21:43:59 -04:00
923ae041dc (temporary) workaround for memory leaks with OpenCL and MPI for upcoming stable release 2018-07-23 15:52:42 -04:00
644888d03c Fixed bugs with time_q and time_quat not calling start() and stop() when _charge and/or _rot in Atom are true for OpenCL builds 2018-07-22 15:12:45 -05:00
b612c7ee75 Fixed a copy-paste bug in lal_neighbor.cpp for neigh no 2018-07-22 13:15:01 -05:00
d71e037c23 Renamed dev_acc to dev_ilist for better description and updated the 3-body styles accordingly; also fixed bugs with accessing dev_packed from the three_end kernel of tersoff/mod and tersoff/zbl gpu styles for OpenCL builds 2018-07-22 11:27:14 -05:00
94da4be922 Fixed bugs for tersoff gpu styles for OpenCL builds 2018-07-21 13:50:10 -05:00
01c27194d4 Fixes for lal_neighbor.cpp for get_host() and for time_kernel 2018-07-21 00:18:30 -05:00
223de57401 Added set_platform_accelerator() for nvd_device.h for OpenCL compatibility 2018-07-21 00:14:31 -05:00
884e72a4ba Merge pull request #1008 from akohlmey/support-platform-select
OpenCL related fixes and improvements to the GPU package
2018-07-20 14:32:49 -06:00
de8176b4fc various minor OpenCL related fixes and improvements to the GPU package
- document previously undocumented OpenCL tune settings
- implement OpenCL platform selection through prefixing the device type with the platform id separated by a colon
- allow passing custom tune parameters though postfixing the device type with the 13 tuneable parameters separated by commas
- remove an extra clear() that would delete device properties structs an cause LAMMPS to output garbage strings
2018-07-20 14:41:54 -04:00
2eb8d779e8 Fixes a memory leak when using OpenCL
The GPU package uses OpenCL events for measuring time. These have to be
released to free up memory. I removed the clReleaseEvent() calls in the
clear() method because in some cases they don't exist yet and I couldn't
find a way to check for a valid event (clRetainEvent didn't work). This
at least fixes the massive leak during simulations.

See issue #1006
2018-07-18 18:54:57 -04:00
ad4f61a5ce update fatbin makefile for libgpu.a to latest additions 2018-07-10 09:07:54 -04:00