Skip to content
Snippets Groups Projects
Commit 86abbbf0 authored by Eric Wait's avatar Eric Wait
Browse files

Image Chunk now uses CudaDevices

parent 37ba1d8f
No related branches found
No related tags found
No related merge requests found
......@@ -122,9 +122,9 @@ std::vector<ImageChunk> calculateChunking(ImageDimensions imageDims, ImageDimens
return localChunks;
}
std::vector<ImageChunk> calculateBuffers(ImageDimensions imageDims, int numBuffersNeeded, size_t memAvailable, size_t bytesPerVal, size_t maxThreads, Vec<size_t> kernelDims /*= Vec<size_t>(0, 0, 0)*/)
std::vector<ImageChunk> calculateBuffers(ImageDimensions imageDims, int numBuffersNeeded, CudaDevices cudaDevs, size_t bytesPerVal, Vec<size_t> kernelDims /*= Vec<size_t>(0, 0, 0)*/)
{
size_t numVoxels = (size_t)(memAvailable/(bytesPerVal*numBuffersNeeded));
size_t numVoxels = (size_t)(cudaDevs.getMinAvailMem()/(bytesPerVal*numBuffersNeeded));
Vec<size_t> dims = imageDims.dims;
Vec<size_t> overlapVolume;
......@@ -261,5 +261,5 @@ std::vector<ImageChunk> calculateBuffers(ImageDimensions imageDims, int numBuffe
deviceImageDims.chan = MAX(1, numVoxels/numVoxelsPerDevice);
deviceImageDims.frame = MAX(1, numVoxels/(deviceImageDims.chan*numVoxelsPerDevice));
return calculateChunking(imageDims, deviceImageDims, maxThreads, kernelDims);
return calculateChunking(imageDims, deviceImageDims, cudaDevs.getMaxThreadsPerBlock(), kernelDims);
}
......@@ -2,6 +2,7 @@
#include "Vec.h"
#include "CudaImageContainer.cuh"
#include "ImageDimensions.cuh"
#include "CudaDeviceInfo.h"
#include <cuda_runtime.h>
#include <vector>
......@@ -200,4 +201,4 @@ void setMaxDeviceDims(std::vector<ImageChunk> &chunks, ImageDimensions &maxDevic
std::vector<ImageChunk> calculateChunking(ImageDimensions imageDims, ImageDimensions deviceDims, size_t maxThreads, Vec<size_t> kernalDims = Vec<size_t>(0, 0, 0));
std::vector<ImageChunk> calculateBuffers(ImageDimensions imageDims, int numBuffersNeeded, size_t memAvailable, size_t bytesPerVal, size_t maxThreads, Vec<size_t> kernelDims = Vec<size_t>(0, 0, 0));
std::vector<ImageChunk> calculateBuffers(ImageDimensions imageDims, int numBuffersNeeded, CudaDevices cudaDevs, size_t bytesPerVal, Vec<size_t> kernelDims = Vec<size_t>(0, 0, 0));
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment