Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/torch/cutorch.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/THC/THCReduceApplyUtils.cu')
-rw-r--r--lib/THC/THCReduceApplyUtils.cu93
1 files changed, 0 insertions, 93 deletions
diff --git a/lib/THC/THCReduceApplyUtils.cu b/lib/THC/THCReduceApplyUtils.cu
index 10d5d89..f92bb99 100644
--- a/lib/THC/THCReduceApplyUtils.cu
+++ b/lib/THC/THCReduceApplyUtils.cu
@@ -11,29 +11,6 @@ void THCCheckTensorDims(THCState* state, THCudaTensor* tensor, int arg) {
THArgCheck(dims <= MAX_CUTORCH_DIMS, arg, CUTORCH_DIM_WARNING);
}
-bool THC_canUse32BitIndexMath(THCState* state, THCudaTensor* t) {
- long elements = THCudaTensor_nElement(state, t);
- if (elements >= UINT_MAX) {
- return false;
- }
-
- long offset = 0;
- long linearId = elements - 1;
-
- for (int i = THCudaTensor_nDimension(state, t) - 1; i >= 0; --i) {
- long curDimIndex = linearId % THCudaTensor_size(state, t, i);
- long curDimOffset = curDimIndex * THCudaTensor_stride(state, t, i);
- offset += curDimOffset;
- linearId /= THCudaTensor_size(state, t, i);
- }
-
- if (offset >= UINT_MAX) {
- return false;
- }
-
- return true;
-}
-
bool THC_getGridFromTiles(long gridTiles, dim3& grid) {
if (gridTiles > MAX_GRID_SIZE * MAX_GRID_SIZE * MAX_GRID_SIZE) {
return false;
@@ -56,73 +33,3 @@ bool THC_getGridFromTiles(long gridTiles, dim3& grid) {
grid = dim3(gridX, gridY, gridZ);
return true;
}
-
-namespace {
-
-struct SizeAndStride {
- long size;
- long stride;
-};
-
-int compareSizeAndStride(const void* a, const void* b) {
- const SizeAndStride* aS = (const SizeAndStride*) a;
- const SizeAndStride* bS = (const SizeAndStride*) b;
-
- return aS->stride < bS->stride;
-}
-
-}
-
-bool THC_overlappingIndices(THCState* state, THCudaTensor* t) {
- // In this function, we don't care about permutations of the
- // size/stride arrays (transpositions).
- // We order the size/stride arrays by stride, skipping dimensions of
- // size 1. Strides of dimensions of size 1 don't matter, since there
- // is only one addressing point in them.
- // In this reordered view, the tensor is contiguous if
- // stride[dim] == size[dim + 1] * stride[dim + 1] for all `dim`.
- // The tensor has holes if
- // stride[dim] > size[dim + 1] * stride[dim + 1] for one or more
- // `dim`.
- // The tensor has overlaps if
- // stride[dim] < size[dim + 1] * stride[dim + 1] for one or more
- // `dim`, or the innermost stride is 0.
-
- // Extract size/stride arrays; only consider size >1 dims.
- SizeAndStride info[MAX_CUTORCH_DIMS];
-
- int dims = THCudaTensor_nDimension(state, t);
- int nonSize1Dims = 0;
- for (int i = 0; i < dims; ++i) {
- long size = THCudaTensor_size(state, t, i);
- if (size > 1) {
- info[nonSize1Dims].size = size;
- info[nonSize1Dims].stride = THCudaTensor_stride(state, t, i);
- ++nonSize1Dims;
- }
- }
-
- if (nonSize1Dims == 0) {
- // no overlap
- return false;
- }
-
- // Ascending order (innermost dimension in sorted view is at [0])
- qsort(info, nonSize1Dims, sizeof(SizeAndStride), compareSizeAndStride);
-
- // Base case: innermost dimension must have stride >= 1
- if (info[nonSize1Dims - 1].stride < 1) {
- return true;
- }
-
- // Subsequent dimensions, if any
- for (int i = nonSize1Dims - 2; i >= 0; --i) {
- if (info[i].stride < info[i + 1].size * info[i + 1].stride) {
- // There are overlaps
- return true;
- }
- }
-
- // Tensor has holes or is contiguous
- return false;
-}