diff --git a/Src/GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp b/Src/GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp index f2c2eb3dd080612428c2b4a0b37533391fdd5456..92c23970f99962d9cc7bc3e14c693e0cdac014b5 100644 --- a/Src/GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp +++ b/Src/GroupTree/StarPUUtils/FStarPUCpuWrapper.hpp @@ -42,16 +42,14 @@ class FStarPUCpuWrapper { protected: typedef FStarPUCpuWrapper<CellContainerClass, CellClass, KernelClass, ParticleGroupClass, ParticleContainerClass> ThisClass; - template <class OtherBlockClass> - struct BlockInteractions{ - OtherBlockClass* otherBlock; - int otherBlockId; - std::vector<OutOfBlockInteraction> interactions; - }; - const int treeHeight; KernelClass* kernels[STARPU_MAXCPUS]; //< The kernels + + int getWorkerId() const { + return FMath::Max(0, starpu_worker_get_id()); + } + public: #ifdef SCALFMM_TIME_OMPTASKS FTaskTimer taskTimeRecorder; @@ -78,7 +76,7 @@ public: FAssertLF(kernels[workerId] == nullptr); kernels[workerId] = new KernelClass(*originalKernel); #ifdef SCALFMM_TIME_OMPTASKS - taskTimeRecorder.init(starpu_worker_get_id()); + taskTimeRecorder.init(getWorkerId()); #endif } @@ -109,9 +107,9 @@ public: } void bottomPassPerform(CellContainerClass* leafCells, ParticleGroupClass* containers){ - FTIME_TASKS(FTaskTimer::ScopeEvent taskTime(starpu_worker_get_id(), &taskTimeRecorder, leafCells->getStartingIndex() * 20 * 8, "P2M")); + FTIME_TASKS(FTaskTimer::ScopeEvent taskTime(getWorkerId(), &taskTimeRecorder, leafCells->getStartingIndex() * 20 * 8, "P2M")); FAssertLF(leafCells->getNumberOfCellsInBlock() == containers->getNumberOfLeavesInBlock()); - KernelClass*const kernel = kernels[starpu_worker_get_id()]; + KernelClass*const kernel = kernels[getWorkerId()]; for(int leafIdx = 0 ; leafIdx < leafCells->getNumberOfCellsInBlock() ; ++leafIdx){ CellClass cell = leafCells->getUpCell(leafIdx); @@ -148,11 +146,11 @@ public: void upwardPassPerform(CellContainerClass*const currentCells, CellContainerClass* subCellGroup, const int idxLevel){ - KernelClass*const kernel = kernels[starpu_worker_get_id()]; + KernelClass*const kernel = kernels[getWorkerId()]; const MortonIndex firstParent = FMath::Max(currentCells->getStartingIndex(), subCellGroup->getStartingIndex()>>3); const MortonIndex lastParent = FMath::Min(currentCells->getEndingIndex()-1, (subCellGroup->getEndingIndex()-1)>>3); - FTIME_TASKS(FTaskTimer::ScopeEvent taskTime(starpu_worker_get_id(), &taskTimeRecorder, ((lastParent * 20) + idxLevel) * 8 + 1, "M2M")); + FTIME_TASKS(FTaskTimer::ScopeEvent taskTime(getWorkerId(), &taskTimeRecorder, ((lastParent * 20) + idxLevel) * 8 + 1, "M2M")); int idxParentCell = currentCells->getCellIndex(firstParent); FAssertLF(idxParentCell != -1); @@ -217,7 +215,7 @@ public: CellContainerClass*const cellsOther, const int idxLevel, const std::vector<OutOfBlockInteraction>* outsideInteractions){ - KernelClass*const kernel = kernels[starpu_worker_get_id()]; + KernelClass*const kernel = kernels[getWorkerId()]; for(int outInterIdx = 0 ; outInterIdx < int(outsideInteractions->size()) ; ++outInterIdx){ const int cellPos = cellsOther->getCellIndex((*outsideInteractions)[outInterIdx].outIndex); @@ -251,10 +249,10 @@ public: } void transferInPassPerform(CellContainerClass*const currentCells, const int idxLevel){ - FTIME_TASKS(FTaskTimer::ScopeEvent taskTime(starpu_worker_get_id(), &taskTimeRecorder, ((currentCells->getStartingIndex() *20) + idxLevel ) * 8 + 2, "M2L")); + FTIME_TASKS(FTaskTimer::ScopeEvent taskTime(getWorkerId(), &taskTimeRecorder, ((currentCells->getStartingIndex() *20) + idxLevel ) * 8 + 2, "M2L")); const MortonIndex blockStartIdx = currentCells->getStartingIndex(); const MortonIndex blockEndIdx = currentCells->getEndingIndex(); - KernelClass*const kernel = kernels[starpu_worker_get_id()]; + KernelClass*const kernel = kernels[getWorkerId()]; const CellClass* interactions[189]; CellClass interactionsData[189]; @@ -314,10 +312,10 @@ public: const int idxLevel, const std::vector<OutOfBlockInteraction>* outsideInteractions, const int mode){ - KernelClass*const kernel = kernels[starpu_worker_get_id()]; + KernelClass*const kernel = kernels[getWorkerId()]; if(mode == 1){ - FTIME_TASKS(FTaskTimer::ScopeEvent taskTime(starpu_worker_get_id(), &taskTimeRecorder, (((currentCells->getStartingIndex()+1) * (cellsOther->getStartingIndex()+2)) * 20 + idxLevel) * 8 + 3, "M2L-ext")); + FTIME_TASKS(FTaskTimer::ScopeEvent taskTime(getWorkerId(), &taskTimeRecorder, (((currentCells->getStartingIndex()+1) * (cellsOther->getStartingIndex()+2)) * 20 + idxLevel) * 8 + 3, "M2L-ext")); for(int outInterIdx = 0 ; outInterIdx < int(outsideInteractions->size()) ; ++outInterIdx){ CellClass interCell = cellsOther->getUpCell((*outsideInteractions)[outInterIdx].outsideIdxInBlock); FAssertLF(interCell.getMortonIndex() == (*outsideInteractions)[outInterIdx].outIndex); @@ -329,7 +327,7 @@ public: } } else{ - FTIME_TASKS(FTaskTimer::ScopeEvent taskTime(starpu_worker_get_id(), &taskTimeRecorder, (((currentCells->getStartingIndex()+1) * (cellsOther->getStartingIndex()+1)) * 20 + idxLevel) * 8 + 3, "M2L-ext")); + FTIME_TASKS(FTaskTimer::ScopeEvent taskTime(getWorkerId(), &taskTimeRecorder, (((currentCells->getStartingIndex()+1) * (cellsOther->getStartingIndex()+1)) * 20 + idxLevel) * 8 + 3, "M2L-ext")); for(int outInterIdx = 0 ; outInterIdx < int(outsideInteractions->size()) ; ++outInterIdx){ CellClass cell = cellsOther->getUpCell((*outsideInteractions)[outInterIdx].insideIdxInBlock); FAssertLF(cell.getMortonIndex() == (*outsideInteractions)[outInterIdx].insideIndex); @@ -369,11 +367,11 @@ public: void downardPassPerform(CellContainerClass*const currentCells, CellContainerClass* subCellGroup, const int idxLevel){ - KernelClass*const kernel = kernels[starpu_worker_get_id()]; + KernelClass*const kernel = kernels[getWorkerId()]; const MortonIndex firstParent = FMath::Max(currentCells->getStartingIndex(), subCellGroup->getStartingIndex()>>3); const MortonIndex lastParent = FMath::Min(currentCells->getEndingIndex()-1, (subCellGroup->getEndingIndex()-1)>>3); - FTIME_TASKS(FTaskTimer::ScopeEvent taskTime(starpu_worker_get_id(), &taskTimeRecorder, ((lastParent * 20) + idxLevel) * 8 + 4, "L2L")); + FTIME_TASKS(FTaskTimer::ScopeEvent taskTime(getWorkerId(), &taskTimeRecorder, ((lastParent * 20) + idxLevel) * 8 + 4, "L2L")); int idxParentCell = currentCells->getCellIndex(firstParent); FAssertLF(idxParentCell != -1); @@ -432,7 +430,7 @@ public: void directInoutPassPerformMpi(ParticleGroupClass* containers, ParticleGroupClass* containersOther, const std::vector<OutOfBlockInteraction>* outsideInteractions){ - KernelClass*const kernel = kernels[starpu_worker_get_id()]; + KernelClass*const kernel = kernels[getWorkerId()]; for(int outInterIdx = 0 ; outInterIdx < int(outsideInteractions->size()) ; ++outInterIdx){ const int leafPos = containersOther->getLeafIndex((*outsideInteractions)[outInterIdx].outIndex); if(leafPos != -1){ @@ -464,10 +462,10 @@ public: } void directInPassPerform(ParticleGroupClass* containers){ - FTIME_TASKS(FTaskTimer::ScopeEvent taskTime(starpu_worker_get_id(), &taskTimeRecorder, containers->getStartingIndex()*20*8 + 5, "P2P")); + FTIME_TASKS(FTaskTimer::ScopeEvent taskTime(getWorkerId(), &taskTimeRecorder, containers->getStartingIndex()*20*8 + 5, "P2P")); const MortonIndex blockStartIdx = containers->getStartingIndex(); const MortonIndex blockEndIdx = containers->getEndingIndex(); - KernelClass*const kernel = kernels[starpu_worker_get_id()]; + KernelClass*const kernel = kernels[getWorkerId()]; for(int leafIdx = 0 ; leafIdx < containers->getNumberOfLeavesInBlock() ; ++leafIdx){ ParticleContainerClass particles = containers->template getLeaf<ParticleContainerClass>(leafIdx); @@ -515,8 +513,8 @@ public: void directInoutPassPerform(ParticleGroupClass* containers, ParticleGroupClass* containersOther, const std::vector<OutOfBlockInteraction>* outsideInteractions){ - FTIME_TASKS(FTaskTimer::ScopeEvent taskTime(starpu_worker_get_id(), &taskTimeRecorder, ((containersOther->getStartingIndex()+1) * (containers->getStartingIndex()+1))*20*8 + 6, "P2P-ext")); - KernelClass*const kernel = kernels[starpu_worker_get_id()]; + FTIME_TASKS(FTaskTimer::ScopeEvent taskTime(getWorkerId(), &taskTimeRecorder, ((containersOther->getStartingIndex()+1) * (containers->getStartingIndex()+1))*20*8 + 6, "P2P-ext")); + KernelClass*const kernel = kernels[getWorkerId()]; for(int outInterIdx = 0 ; outInterIdx < int(outsideInteractions->size()) ; ++outInterIdx){ ParticleContainerClass interParticles = containersOther->template getLeaf<ParticleContainerClass>((*outsideInteractions)[outInterIdx].outsideIdxInBlock); ParticleContainerClass particles = containers->template getLeaf<ParticleContainerClass>((*outsideInteractions)[outInterIdx].insideIdxInBlock); @@ -554,9 +552,9 @@ public: } void mergePassPerform(CellContainerClass* leafCells, ParticleGroupClass* containers){ - FTIME_TASKS(FTaskTimer::ScopeEvent taskTime(starpu_worker_get_id(), &taskTimeRecorder, (leafCells->getStartingIndex()*20*8) + 7, "L2P")); + FTIME_TASKS(FTaskTimer::ScopeEvent taskTime(getWorkerId(), &taskTimeRecorder, (leafCells->getStartingIndex()*20*8) + 7, "L2P")); FAssertLF(leafCells->getNumberOfCellsInBlock() == containers->getNumberOfLeavesInBlock()); - KernelClass*const kernel = kernels[starpu_worker_get_id()]; + KernelClass*const kernel = kernels[getWorkerId()]; for(int cellIdx = 0 ; cellIdx < leafCells->getNumberOfCellsInBlock() ; ++cellIdx){ CellClass cell = leafCells->getDownCell(cellIdx); diff --git a/Src/GroupTree/StarPUUtils/FStarPUCudaWrapper.hpp b/Src/GroupTree/StarPUUtils/FStarPUCudaWrapper.hpp index a2013938b8b942e3077d87c27f7d1c9c687c65e3..f5fcb0c49eb78b9ea4d3ae2d76632d3a85cc07cd 100644 --- a/Src/GroupTree/StarPUUtils/FStarPUCudaWrapper.hpp +++ b/Src/GroupTree/StarPUUtils/FStarPUCudaWrapper.hpp @@ -41,16 +41,13 @@ protected: typedef FStarPUCudaWrapper<KernelClass, SymboleCellClass, PoleCellClass, LocalCellClass, CudaCellGroupClass, CudaParticleGroupClass, CudaParticleContainerClass, CudaKernelClass> ThisClass; - template <class OtherBlockClass> - struct BlockInteractions{ - OtherBlockClass* otherBlock; - int otherBlockId; - std::vector<OutOfBlockInteraction> interactions; - }; - const int treeHeight; CudaKernelClass* kernels[STARPU_MAXCUDADEVS]; //< The kernels + int getWorkerId() const { + return FMath::Max(0, starpu_worker_get_id()); + } + public: FStarPUCudaWrapper(const int inTreeHeight): treeHeight(inTreeHeight){ memset(kernels, 0, sizeof(CudaKernelClass*)*STARPU_MAXCUDADEVS); @@ -85,7 +82,7 @@ public: int intervalSize; starpu_codelet_unpack_args(cl_arg, &worker, &intervalSize, &intervalSize); - CudaKernelClass* kernel = worker->get<ThisClass>(FSTARPU_CUDA_IDX)->kernels[starpu_worker_get_id()]; + CudaKernelClass* kernel = worker->get<ThisClass>(FSTARPU_CUDA_IDX)->kernels[getWorkerId()]; FCuda__bottomPassCallback< SymboleCellClass, PoleCellClass, LocalCellClass, CudaCellGroupClass, CudaParticleGroupClass, CudaParticleContainerClass, CudaKernelClass>( @@ -109,7 +106,7 @@ public: int intervalSize = 0; starpu_codelet_unpack_args(cl_arg, &worker, &nbSubCellGroups, &idxLevel, &intervalSize); - CudaKernelClass* kernel = worker->get<ThisClass>(FSTARPU_CUDA_IDX)->kernels[starpu_worker_get_id()]; + CudaKernelClass* kernel = worker->get<ThisClass>(FSTARPU_CUDA_IDX)->kernels[getWorkerId()]; FCuda__upwardPassCallback< SymboleCellClass, PoleCellClass, LocalCellClass, CudaCellGroupClass, CudaParticleGroupClass, CudaParticleContainerClass, CudaKernelClass>( @@ -134,7 +131,7 @@ public: int intervalSize = 0; starpu_codelet_unpack_args(cl_arg, &worker, &idxLevel, &outsideInteractions, &intervalSize); - CudaKernelClass* kernel = worker->get<ThisClass>(FSTARPU_CUDA_IDX)->kernels[starpu_worker_get_id()]; + CudaKernelClass* kernel = worker->get<ThisClass>(FSTARPU_CUDA_IDX)->kernels[getWorkerId()]; FCuda__transferInoutPassCallbackMpi< SymboleCellClass, PoleCellClass, LocalCellClass, CudaCellGroupClass, CudaParticleGroupClass, CudaParticleContainerClass, CudaKernelClass>( @@ -159,7 +156,7 @@ public: int intervalSize = 0; starpu_codelet_unpack_args(cl_arg, &worker, &idxLevel, &intervalSize); - CudaKernelClass* kernel = worker->get<ThisClass>(FSTARPU_CUDA_IDX)->kernels[starpu_worker_get_id()]; + CudaKernelClass* kernel = worker->get<ThisClass>(FSTARPU_CUDA_IDX)->kernels[getWorkerId()]; FCuda__transferInPassCallback< SymboleCellClass, PoleCellClass, LocalCellClass, CudaCellGroupClass, CudaParticleGroupClass, CudaParticleContainerClass, CudaKernelClass>( @@ -180,7 +177,7 @@ public: starpu_codelet_unpack_args(cl_arg, &worker, &idxLevel, &outsideInteractions, &intervalSize, &mode); const int nbInteractions = int(outsideInteractions->size()); - CudaKernelClass* kernel = worker->get<ThisClass>(FSTARPU_CUDA_IDX)->kernels[starpu_worker_get_id()]; + CudaKernelClass* kernel = worker->get<ThisClass>(FSTARPU_CUDA_IDX)->kernels[getWorkerId()]; // outsideInteractions is sorted following the outIndex // Compute the cell interval @@ -232,7 +229,7 @@ public: int intervalSize = 0; starpu_codelet_unpack_args(cl_arg, &worker, &nbSubCellGroups, &idxLevel, &intervalSize); - CudaKernelClass* kernel = worker->get<ThisClass>(FSTARPU_CUDA_IDX)->kernels[starpu_worker_get_id()]; + CudaKernelClass* kernel = worker->get<ThisClass>(FSTARPU_CUDA_IDX)->kernels[getWorkerId()]; FCuda__downardPassCallback< SymboleCellClass, PoleCellClass, LocalCellClass, CudaCellGroupClass, CudaParticleGroupClass, CudaParticleContainerClass, CudaKernelClass>( @@ -258,7 +255,7 @@ public: starpu_codelet_unpack_args(cl_arg, &worker, &outsideInteractions, &intervalSize); const int nbInteractions = int(outsideInteractions->size()); - CudaKernelClass* kernel = worker->get<ThisClass>(FSTARPU_CUDA_IDX)->kernels[starpu_worker_get_id()]; + CudaKernelClass* kernel = worker->get<ThisClass>(FSTARPU_CUDA_IDX)->kernels[getWorkerId()]; std::unique_ptr<int[]> safeOuterInteractions(new int[nbInteractions+1]); const int counterOuterCell = GetClusterOfInteractionsOutside(safeOuterInteractions.get(), outsideInteractions->data(), nbInteractions); @@ -284,7 +281,7 @@ public: FStarPUPtrInterface* worker = nullptr; int intervalSize = 0; starpu_codelet_unpack_args(cl_arg, &worker, &intervalSize); - CudaKernelClass* kernel = worker->get<ThisClass>(FSTARPU_CUDA_IDX)->kernels[starpu_worker_get_id()]; + CudaKernelClass* kernel = worker->get<ThisClass>(FSTARPU_CUDA_IDX)->kernels[getWorkerId()]; FCuda__directInPassCallback< SymboleCellClass, PoleCellClass, LocalCellClass, CudaCellGroupClass, CudaParticleGroupClass, CudaParticleContainerClass, CudaKernelClass>( @@ -348,7 +345,7 @@ public: starpu_codelet_unpack_args(cl_arg, &worker, &outsideInteractions, &intervalSize); const int nbInteractions = int(outsideInteractions->size()); - CudaKernelClass* kernel = worker->get<ThisClass>(FSTARPU_CUDA_IDX)->kernels[starpu_worker_get_id()]; + CudaKernelClass* kernel = worker->get<ThisClass>(FSTARPU_CUDA_IDX)->kernels[getWorkerId()]; // outsideInteractions is sorted following the outIndex // Compute the cell interval @@ -394,7 +391,7 @@ public: int intervalSize; starpu_codelet_unpack_args(cl_arg, &worker, &intervalSize); - CudaKernelClass* kernel = worker->get<ThisClass>(FSTARPU_CUDA_IDX)->kernels[starpu_worker_get_id()]; + CudaKernelClass* kernel = worker->get<ThisClass>(FSTARPU_CUDA_IDX)->kernels[getWorkerId()]; FCuda__mergePassCallback< SymboleCellClass, PoleCellClass, LocalCellClass, CudaCellGroupClass, CudaParticleGroupClass, CudaParticleContainerClass, CudaKernelClass>( diff --git a/Src/GroupTree/StarPUUtils/FStarPUOpenClWrapper.hpp b/Src/GroupTree/StarPUUtils/FStarPUOpenClWrapper.hpp index a93724c9ff33e9a7b6de5d298a8c59795a5436dd..46633cc2cbce328d01ea5cd127d6e020fe9f1a48 100644 --- a/Src/GroupTree/StarPUUtils/FStarPUOpenClWrapper.hpp +++ b/Src/GroupTree/StarPUUtils/FStarPUOpenClWrapper.hpp @@ -45,6 +45,10 @@ protected: const int treeHeight; OpenCLKernelClass* kernels[STARPU_MAXOPENCLDEVS]; //< The kernels + int getWorkerId() const { + return FMath::Max(0, starpu_worker_get_id()); + } + public: FStarPUOpenClWrapper(const int inTreeHeight): treeHeight(inTreeHeight){ memset(kernels, 0, sizeof(OpenCLKernelClass*)*STARPU_MAXOPENCLDEVS); @@ -87,7 +91,7 @@ public: FStarPUPtrInterface* worker = nullptr; int intervalSize; starpu_codelet_unpack_args(cl_arg, &worker, &intervalSize); - OpenCLKernelClass* kernel = worker->get<ThisClass>(FSTARPU_OPENCL_IDX)->kernels[starpu_worker_get_id()]; + OpenCLKernelClass* kernel = worker->get<ThisClass>(FSTARPU_OPENCL_IDX)->kernels[getWorkerId()]; kernel->bottomPassPerform(leafCellsPtr, leafCellsSize, leafCellsUpPtr, containersPtr, containersSize, intervalSize); @@ -112,7 +116,7 @@ public: size_t otherCellsSize = STARPU_VARIABLE_GET_ELEMSIZE(buffers[2]); cl_mem otherCellsUpPtr = ((cl_mem)STARPU_VARIABLE_GET_DEV_HANDLE(buffers[3])); - OpenCLKernelClass* kernel = worker->get<ThisClass>(FSTARPU_OPENCL_IDX)->kernels[starpu_worker_get_id()]; + OpenCLKernelClass* kernel = worker->get<ThisClass>(FSTARPU_OPENCL_IDX)->kernels[getWorkerId()]; kernel->upwardPassPerform(currentCellsPtr, currentCellsSize, currentCellsUpPtr, otherCellsPtr, otherCellsSize, otherCellsUpPtr, idxLevel, intervalSize); @@ -138,7 +142,7 @@ public: int intervalSize; starpu_codelet_unpack_args(cl_arg, &worker, &idxLevel, &outsideInteractions, &intervalSize); - OpenCLKernelClass* kernel = worker->get<ThisClass>(FSTARPU_OPENCL_IDX)->kernels[starpu_worker_get_id()]; + OpenCLKernelClass* kernel = worker->get<ThisClass>(FSTARPU_OPENCL_IDX)->kernels[getWorkerId()]; cl_int errcode_ret; cl_mem outsideInteractionsCl = clCreateBuffer(kernel->getOpenCLContext(), CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR | CL_MEM_HOST_NO_ACCESS, @@ -171,7 +175,7 @@ public: int intervalSize; starpu_codelet_unpack_args(cl_arg, &worker, &idxLevel, &intervalSize); - OpenCLKernelClass* kernel = worker->get<ThisClass>(FSTARPU_OPENCL_IDX)->kernels[starpu_worker_get_id()]; + OpenCLKernelClass* kernel = worker->get<ThisClass>(FSTARPU_OPENCL_IDX)->kernels[getWorkerId()]; kernel->transferInPassPerform(currentCellsPtr, currentCellsSize, currentCellsUpPtr, currentCellsDownPtr, idxLevel, intervalSize); } @@ -192,7 +196,7 @@ public: int mode = 0; starpu_codelet_unpack_args(cl_arg, &worker, &idxLevel, &outsideInteractions, &intervalSize, &mode); - OpenCLKernelClass* kernel = worker->get<ThisClass>(FSTARPU_OPENCL_IDX)->kernels[starpu_worker_get_id()]; + OpenCLKernelClass* kernel = worker->get<ThisClass>(FSTARPU_OPENCL_IDX)->kernels[getWorkerId()]; cl_int errcode_ret; cl_mem outsideInteractionsCl = clCreateBuffer(kernel->getOpenCLContext(), CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR | CL_MEM_HOST_NO_ACCESS, @@ -227,7 +231,7 @@ public: size_t otherCellsSize = STARPU_VARIABLE_GET_ELEMSIZE(buffers[2]); cl_mem otherCellsDownPtr = ((cl_mem)STARPU_VARIABLE_GET_DEV_HANDLE(buffers[3])); - OpenCLKernelClass* kernel = worker->get<ThisClass>(FSTARPU_OPENCL_IDX)->kernels[starpu_worker_get_id()]; + OpenCLKernelClass* kernel = worker->get<ThisClass>(FSTARPU_OPENCL_IDX)->kernels[getWorkerId()]; kernel->downardPassPerform(currentCellsPtr, currentCellsSize, currentCellsDownPtr, otherCellsPtr, otherCellsSize, otherCellsDownPtr, idxLevel, intervalSize); @@ -251,7 +255,7 @@ public: int intervalSize; starpu_codelet_unpack_args(cl_arg, &worker, &outsideInteractions, &intervalSize); - OpenCLKernelClass* kernel = worker->get<ThisClass>(FSTARPU_OPENCL_IDX)->kernels[starpu_worker_get_id()]; + OpenCLKernelClass* kernel = worker->get<ThisClass>(FSTARPU_OPENCL_IDX)->kernels[getWorkerId()]; cl_int errcode_ret; cl_mem outsideInteractionsCl = clCreateBuffer(kernel->getOpenCLContext(), CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR | CL_MEM_HOST_NO_ACCESS, @@ -278,7 +282,7 @@ public: FStarPUPtrInterface* worker = nullptr; int intervalSize; starpu_codelet_unpack_args(cl_arg, &worker, &intervalSize); - OpenCLKernelClass* kernel = worker->get<ThisClass>(FSTARPU_OPENCL_IDX)->kernels[starpu_worker_get_id()]; + OpenCLKernelClass* kernel = worker->get<ThisClass>(FSTARPU_OPENCL_IDX)->kernels[getWorkerId()]; kernel->directInPassPerform(containersPtr, containerSize, containersDownPtr, intervalSize); } @@ -297,7 +301,7 @@ public: int intervalSize; starpu_codelet_unpack_args(cl_arg, &worker, &outsideInteractions, &intervalSize); - OpenCLKernelClass* kernel = worker->get<ThisClass>(FSTARPU_OPENCL_IDX)->kernels[starpu_worker_get_id()]; + OpenCLKernelClass* kernel = worker->get<ThisClass>(FSTARPU_OPENCL_IDX)->kernels[getWorkerId()]; cl_int errcode_ret; cl_mem outsideInteractionsCl = clCreateBuffer(kernel->getOpenCLContext(), CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR | CL_MEM_HOST_NO_ACCESS, @@ -329,7 +333,7 @@ public: FStarPUPtrInterface* worker = nullptr; int intervalSize; starpu_codelet_unpack_args(cl_arg, &worker, &intervalSize); - OpenCLKernelClass* kernel = worker->get<ThisClass>(FSTARPU_OPENCL_IDX)->kernels[starpu_worker_get_id()]; + OpenCLKernelClass* kernel = worker->get<ThisClass>(FSTARPU_OPENCL_IDX)->kernels[getWorkerId()]; kernel->mergePassPerform(leafCellsPtr, leafCellsSize, leafCellsDownPtr, containersPtr, containersSize, containersDownPtr, intervalSize);