Unverified Commit 0363c38d authored by Anton Gorenko's avatar Anton Gorenko Committed by GitHub
Browse files

Fix exclusion tiles sorting on AMD GCN/CDNA (64 threads per wave) (#4268)

The nonbonded kernel uses USE_NEIGHBOR_LIST (useNeighborList)
so host code also must check it instead of useCutoff.

See also https://github.com/openmm/openmm/issues/3462
parent 02264769
...@@ -224,7 +224,7 @@ void OpenCLNonbondedUtilities::initialize(const System& system) { ...@@ -224,7 +224,7 @@ void OpenCLNonbondedUtilities::initialize(const System& system) {
vector<mm_int2> exclusionTilesVec; vector<mm_int2> exclusionTilesVec;
for (set<pair<int, int> >::const_iterator iter = tilesWithExclusions.begin(); iter != tilesWithExclusions.end(); ++iter) for (set<pair<int, int> >::const_iterator iter = tilesWithExclusions.begin(); iter != tilesWithExclusions.end(); ++iter)
exclusionTilesVec.push_back(mm_int2(iter->first, iter->second)); exclusionTilesVec.push_back(mm_int2(iter->first, iter->second));
sort(exclusionTilesVec.begin(), exclusionTilesVec.end(), context.getSIMDWidth() <= 32 || !useCutoff ? compareInt2 : compareInt2LargeSIMD); sort(exclusionTilesVec.begin(), exclusionTilesVec.end(), context.getSIMDWidth() <= 32 || !useNeighborList ? compareInt2 : compareInt2LargeSIMD);
exclusionTiles.initialize<mm_int2>(context, exclusionTilesVec.size(), "exclusionTiles"); exclusionTiles.initialize<mm_int2>(context, exclusionTilesVec.size(), "exclusionTiles");
exclusionTiles.upload(exclusionTilesVec); exclusionTiles.upload(exclusionTilesVec);
map<pair<int, int>, int> exclusionTileMap; map<pair<int, int>, int> exclusionTileMap;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment