some scheduler changes and stuff

This commit is contained in:
Evghenii
2014-02-02 11:12:46 +01:00
parent 9cc204e83a
commit 3594a80e04
2 changed files with 7 additions and 12 deletions

View File

@@ -505,6 +505,12 @@ void mergeElementaryIntervals(
limitsB,
stride,
N);
if (lastSegmentElements <= stride)
foreach (i = 0 ... lastSegmentElements)
{
dstKey[N-lastSegmentElements+i] = srcKey[N-lastSegmentElements+i];
dstVal[N-lastSegmentElements+i] = srcVal[N-lastSegmentElements+i];
}
sync;
}
@@ -580,8 +586,6 @@ void mergeSort(
#if 1
for (uniform int stride = 2*programCount; stride < N; stride <<= 1)
{
const uniform int lastSegmentElements = N % (2 * stride);
// cpu: 30 gpu: 112 M/s
{
#if 1
@@ -602,15 +606,6 @@ void mergeSort(
mergeElementaryIntervals(oKey, oVal, iKey, iVal, limitsA, limitsB, stride, N);
}
if (lastSegmentElements <= stride)
foreach (i = 0 ... lastSegmentElements)
{
oKey[N-lastSegmentElements+i] = iKey[N-lastSegmentElements+i];
oVal[N-lastSegmentElements+i] = iVal[N-lastSegmentElements+i];
}
memory_barrier();
{
uniform Key_t * uniform tmpKey = iKey;
iKey = oKey;

View File

@@ -962,7 +962,7 @@ InitTaskSystem() {
inline void
TaskGroup::Launch(int baseIndex, int count) {
#pragma omp parallel for
#pragma omp parallel for schedule(guided)
for(int i = 0; i < count; i++) {
TaskInfo *ti = GetTaskInfo(baseIndex + i);