Commit bebd72f3 authored by rusty1s's avatar rusty1s
Browse files

rename

parent 78342c6a
void THTensor_graclus(THLongTensor *self, THLongTensor *row, THLongTensor *col); void THTensor_graclus(THLongTensor *self, THLongTensor *row, THLongTensor *col);
void THByteTensor_graclus(THLongTensor *self, THLongTensor *row, THLongTensor *col, THByteTensor *weight); void THByteTensor_graclus(THLongTensor *self, THLongTensor *row, THLongTensor *col, THByteTensor *weight);
void THCharTensor_graclus(THLongTensor *self, THLongTensor *row, THLongTensor *col, THCharTensor *weight); void THCharTensor_graclus(THLongTensor *self, THLongTensor *row, THLongTensor *col, THCharTensor *weight);
......
#include <THC/THC.h>
#include "THC.h"
#define THCCTensor_(NAME) TH_CONCAT_4(THCC,Real,Tensor_,NAME)
extern THCState *state;
void THCCTensor_graclus(THCudaLongTensor *self, THCudaLongTensor *row, THCudaLongTensor *col) {
THCTensor_graclus(state, self, row, col);
}
#include "generic/THCCGraclus.c"
#include "THCGenerateAllTypes.h"
void THCCTensor_graclus(THCudaLongTensor *self, THCudaLongTensor *row, THCudaLongTensor *col);
void THCCByteTensor_graclus(THCudaLongTensor *self, THCudaLongTensor *row, THCudaLongTensor *col, THCudaByteTensor *weight);
void THCCCharTensor_graclus(THCudaLongTensor *self, THCudaLongTensor *row, THCudaLongTensor *col, THCudaCharTensor *weight);
void THCCShortTensor_graclus(THCudaLongTensor *self, THCudaLongTensor *row, THCudaLongTensor *col, THCudaShortTensor *weight);
void THCCIntTensor_graclus(THCudaLongTensor *self, THCudaLongTensor *row, THCudaLongTensor *col, THCudaIntTensor *weight);
void THCCLongTensor_graclus(THCudaLongTensor *self, THCudaLongTensor *row, THCudaLongTensor *col, THCudaLongTensor *weight);
void THCCHalfTensor_graclus(THCudaLongTensor *self, THCudaLongTensor *row, THCudaLongTensor *col, THCudaHalfTensor *weight);
void THCCFloatTensor_graclus(THCudaLongTensor *self, THCudaLongTensor *row, THCudaLongTensor *col, THCudaTensor *weight);
void THCCDoubleTensor_graclus(THCudaLongTensor *self, THCudaLongTensor *row, THCudaLongTensor *col, THCudaDoubleTensor *weight);
#include <THC/THC.h>
#include "THCGreedy.h"
#define THCCGreedy_ TH_CONCAT_3(THCC,Real,Greedy)
#define THCGreedy_ TH_CONCAT_3(TH,CReal,Greedy)
extern THCState *state;
void THCCGreedy(THCudaLongTensor *cluster, THCudaLongTensor *row, THCudaLongTensor *col) {
THCGreedy(state, cluster, row, col);
}
#include "generic/THCCGreedy.c"
#include "THCGenerateAllTypes.h"
void THCCGreedy(THCudaLongTensor *cluster, THCudaLongTensor *row, THCudaLongTensor *col);
void THCCByteGreedy(THCudaLongTensor *cluster, THCudaLongTensor *row, THCudaLongTensor *col, THCudaByteTensor *weight);
void THCCCharGreedy(THCudaLongTensor *cluster, THCudaLongTensor *row, THCudaLongTensor *col, THCudaCharTensor *weight);
void THCCShortGreedy(THCudaLongTensor *cluster, THCudaLongTensor *row, THCudaLongTensor *col, THCudaShortTensor *weight);
void THCCIntGreedy(THCudaLongTensor *cluster, THCudaLongTensor *row, THCudaLongTensor *col, THCudaIntTensor *weight);
void THCCLongGreedy(THCudaLongTensor *cluster, THCudaLongTensor *row, THCudaLongTensor *col, THCudaLongTensor *weight);
void THCCHalfGreedy(THCudaLongTensor *cluster, THCudaLongTensor *row, THCudaLongTensor *col, THCudaHalfTensor *weight);
void THCCFloatGreedy(THCudaLongTensor *cluster, THCudaLongTensor *row, THCudaLongTensor *col, THCudaTensor *weight);
void THCCDoubleGreedy(THCudaLongTensor *cluster, THCudaLongTensor *row, THCudaLongTensor *col, THCudaDoubleTensor *weight);
#include <THC/THC.h> #include <THC/THC.h>
#include "THCGrid.h" #include "THC.h"
#define THCCGrid_ TH_CONCAT_3(THCC,Real,Grid) #define THCCTensor_(NAME) TH_CONCAT_4(THCC,Real,Tensor_,NAME)
#define THCGrid_ TH_CONCAT_3(TH,CReal,Grid)
extern THCState *state; extern THCState *state;
......
void THCCByteGrid(THCudaLongTensor *cluster, THCudaByteTensor *pos, THCudaByteTensor *size, THCudaLongTensor *count); void THCCByteTensor_grid(THCudaLongTensor *self, THCudaByteTensor *pos, THCudaByteTensor *size, THCudaLongTensor *count);
void THCCCharGrid(THCudaLongTensor *cluster, THCudaCharTensor *pos, THCudaCharTensor *size, THCudaLongTensor *count); void THCCCharTensor_grid(THCudaLongTensor *self, THCudaCharTensor *pos, THCudaCharTensor *size, THCudaLongTensor *count);
void THCCShortGrid(THCudaLongTensor *cluster, THCudaShortTensor *pos, THCudaShortTensor *size, THCudaLongTensor *count); void THCCShortTensor_grid(THCudaLongTensor *self, THCudaShortTensor *pos, THCudaShortTensor *size, THCudaLongTensor *count);
void THCCIntGrid(THCudaLongTensor *cluster, THCudaIntTensor *pos, THCudaIntTensor *size, THCudaLongTensor *count); void THCCIntTensor_grid(THCudaLongTensor *self, THCudaIntTensor *pos, THCudaIntTensor *size, THCudaLongTensor *count);
void THCCLongGrid(THCudaLongTensor *cluster, THCudaLongTensor *pos, THCudaLongTensor *size, THCudaLongTensor *count); void THCCLongTensor_grid(THCudaLongTensor *self, THCudaLongTensor *pos, THCudaLongTensor *size, THCudaLongTensor *count);
void THCCHalfGrid(THCudaLongTensor *cluster, THCudaHalfTensor *pos, THCudaHalfTensor *size, THCudaLongTensor *count); void THCCHalfTensor_grid(THCudaLongTensor *self, THCudaHalfTensor *pos, THCudaHalfTensor *size, THCudaLongTensor *count);
void THCCFloatGrid(THCudaLongTensor *cluster, THCudaTensor *pos, THCudaTensor *size, THCudaLongTensor *count); void THCCFloatTensor_grid(THCudaLongTensor *self, THCudaTensor *pos, THCudaTensor *size, THCudaLongTensor *count);
void THCCDoubleGrid(THCudaLongTensor *cluster, THCudaDoubleTensor *pos, THCudaDoubleTensor *size, THCudaLongTensor *count); void THCCDoubleTensor_grid(THCudaLongTensor *self, THCudaDoubleTensor *pos, THCudaDoubleTensor *size, THCudaLongTensor *count);
#ifndef THC_GENERIC_FILE
#define THC_GENERIC_FILE "generic/THCCGraclus.c"
#else
void THCCTensor_(graclus)(THCudaLongTensor *self, THCudaLongTensor *row, THCudaLongTensor *col,
THCTensor *weight) {
THCTensor_(graclus)(state, self, row, col, weight);
}
#endif
#ifndef THC_GENERIC_FILE
#define THC_GENERIC_FILE "generic/THCCGreedy.c"
#else
void THCCGreedy_(THCudaLongTensor *cluster, THCudaLongTensor *row, THCudaLongTensor *col,
THCTensor *weight) {
THCGreedy_(state, cluster, row, col, weight);
}
#endif
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
#define THC_GENERIC_FILE "generic/THCCGrid.c" #define THC_GENERIC_FILE "generic/THCCGrid.c"
#else #else
void THCCGrid_(THCudaLongTensor *cluster, THCTensor *pos, THCTensor *size, void THCCTensor_(grid)(THCudaLongTensor *self, THCTensor *pos, THCTensor *size,
THCudaLongTensor *count) { THCudaLongTensor *count) {
THCGrid_(state, cluster, pos, size, count); THCTensor_(grid)(state, self, pos, size, count);
} }
#endif #endif
......
import time
import torch import torch
from torch_cluster._ext import ffi from torch_cluster._ext import ffi
cluster = torch.cuda.LongTensor(5) cluster = torch.cuda.LongTensor(4)
pos = torch.cuda.FloatTensor([[1, 1], [3, 3], [1, 1], [5, 5], [3, 3]]) row = torch.cuda.LongTensor([0, 0, 1, 1, 1, 2, 2, 2, 3, 3])
size = torch.cuda.FloatTensor([2, 2]) col = torch.cuda.LongTensor([1, 2, 0, 2, 3, 0, 1, 3, 1, 2])
count = torch.cuda.LongTensor([3, 3]) # deg = torch.cuda.LongTensor([2, 3, 3, 2])
func = ffi.THCCFloatGrid func = ffi.THCCGreedy
print(func) print(func)
func(cluster, pos, size, count) a = 0
torch.cuda.synchronize()
t = time.perf_counter()
# for i in range(100):
func(cluster, row, col)
# a += cluster.sum() / cluster.size(0)
torch.cuda.synchronize()
print(time.perf_counter() - t)
print(cluster) print(cluster)
...@@ -17,15 +17,15 @@ define_macros = [] ...@@ -17,15 +17,15 @@ define_macros = []
extra_objects = [] extra_objects = []
with_cuda = False with_cuda = False
if torch.cuda.is_available(): # if torch.cuda.is_available():
subprocess.call(['./build_new.sh', osp.dirname(torch.__file__)]) # subprocess.call(['./build_new.sh', osp.dirname(torch.__file__)])
headers += ['aten/THCC/THCC{}.h'.format(f) for f in files] # headers += ['aten/THCC/THCC{}.h'.format(f) for f in files]
sources += ['aten/THCC/THCC{}.c'.format(f) for f in files] # sources += ['aten/THCC/THCC{}.c'.format(f) for f in files]
include_dirs += ['aten/THC', 'aten/THCC'] # include_dirs += ['aten/THC', 'aten/THCC']
define_macros += [('WITH_CUDA', None)] # define_macros += [('WITH_CUDA', None)]
extra_objects += ['aten/build/THC.so'] # extra_objects += ['aten/build/THC.so']
with_cuda = True # with_cuda = True
ffi = create_extension( ffi = create_extension(
name='torch_cluster._ext.ffi', name='torch_cluster._ext.ffi',
......
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