Spaces:
Running
Running
#! /usr/bin/env python3 | |
# -*- coding: utf-8 -*- | |
# File : build.py | |
# Author : Jiayuan Mao, Tete Xiao | |
# Email : maojiayuan@gmail.com, jasonhsiao97@gmail.com | |
# Date : 07/13/2018 | |
# | |
# This file is part of PreciseRoIPooling. | |
# Distributed under terms of the MIT license. | |
# Copyright (c) 2017 Megvii Technology Limited. | |
import os | |
import torch | |
from torch.utils.ffi import create_extension | |
headers = [] | |
sources = [] | |
defines = [] | |
extra_objects = [] | |
with_cuda = False | |
if torch.cuda.is_available(): | |
with_cuda = True | |
headers+= ['src/prroi_pooling_gpu.h'] | |
sources += ['src/prroi_pooling_gpu.c'] | |
defines += [('WITH_CUDA', None)] | |
this_file = os.path.dirname(os.path.realpath(__file__)) | |
extra_objects_cuda = ['src/prroi_pooling_gpu_impl.cu.o'] | |
extra_objects_cuda = [os.path.join(this_file, fname) for fname in extra_objects_cuda] | |
extra_objects.extend(extra_objects_cuda) | |
else: | |
# TODO(Jiayuan Mao @ 07/13): remove this restriction after we support the cpu implementation. | |
raise NotImplementedError('Precise RoI Pooling only supports GPU (cuda) implememtations.') | |
ffi = create_extension( | |
'_prroi_pooling', | |
headers=headers, | |
sources=sources, | |
define_macros=defines, | |
relative_to=__file__, | |
with_cuda=with_cuda, | |
extra_objects=extra_objects | |
) | |
if __name__ == '__main__': | |
ffi.build() | |