1. 10 Dec, 2020 1 commit
    • Vasilis Vryniotis's avatar
      Restructuring C++ project: (#3146) · 7d831a2f
      Vasilis Vryniotis authored
      Summary:
      * Reduce unnecessary header inclusions in models and io.
      
      * Move autocast to separate folder and hide autograd implementation in an anonymous namespace.
      
      * Moving files in subfolders.
      
      Reviewed By: fmassa
      
      Differential Revision: D25461523
      
      fbshipit-source-id: 756eeb6848aacaa474de4825ed4c1045d17e2cea
      7d831a2f
  2. 08 Dec, 2020 1 commit
    • Vasilis Vryniotis's avatar
      Per file C++ Operator registration (#3135) · 3c33f367
      Vasilis Vryniotis authored
      * Moving deform_conv2d op registration.
      
      * Moving nms op registration.
      
      * Moving new_empty_tensor op registration.
      
      * Moving ps_roi_align op registration.
      
      * Moving ps_roi_pool op registration.
      
      * Moving roi_align op registration.
      
      * Moving roi_pool op registration.
      
      * Restoring headers for forward/backward and fixing styles.
      
      * Restoring the test hack on windows.
      
      * Stricter header inclusion.
      3c33f367
  3. 02 Dec, 2020 1 commit
    • Vasilis Vryniotis's avatar
      Encapsulate and Standardise C++ Ops (#3097) · 0ebbb0ab
      Vasilis Vryniotis authored
      * Encapsulate and standardize deform_conv2d (#3074)
      
      * Rename files.
      
      * Standardizing method names.
      
      * Adding anonymous namespaces.
      
      * Applying C++ naming rules and alinging variable names across headers and cpp files.
      
      * Syncing names across implementations.
      
      * Rename deform_conv2d.h to deform_conv2d.cpp
      
      * Use header files:
      - Create header files for kernel implementation and remove definitions from vision_*.h files.
      - Eliminate unnecessary headers and ensure all cpp include their headers.
      
      * Change the naming convention for kernel implementations.
      
      * Remove the _param postfix from the variables and standardizing names.
      
      * Exposing public forward/backward methods to the C++ API and moving methods around to minimize git blame changes.
      
      * Encapsulate and standardize nms (#3081)
      
      * Syncing, where possible, the names of functions across devices.
      
      * Adding all internal functions in anonymous namespaces.
      
      * Renaming C++/CUDA kernel files and moving operator code from header to cpp file.
      
      * Create foreach cpp file a separate header file with "public" functions.
      
      * Removing unnecessary repeated includes.
      
      * Update CMakeLists.txt to include all headers.
      
      * Encapsulate and standardize ps_roi_align (#3082)
      
      * Renaming C++ files & methods according to recommended naming conventions and aligning them with Python's API.
      Syncing, where possible, the names of functions across devices.
      
      * Adding all internal functions in anonymous namespaces.
      
      * Renaming C++/CUDA kernel files and moving operator code from header to cpp file.
      
      * Create foreach cpp file a separate header file with "public" functions.
      
      * Removing unnecessary repeated includes.
      
      * Encapsulate and standardize ps_roi_pool (#3084)
      
      * Renaming C++ files & methods according to recommended naming conventions and aligning them with Python's API.
      
      * Adding all internal functions in anonymous namespaces.
      
      * Renaming C++/CUDA kernel files and moving operator code from header to cpp file.
      
      * Create foreach cpp file a separate header file with "public" functions.
      
      * Removing unnecessary repeated includes.
      
      * Encapsulate and standardize roi_align (#3085)
      
      * Renaming C++ files & methods according to recommended naming conventions and aligning them with Python's API.
      
      * Adding all internal functions in anonymous namespaces.
      
      * Renaming C++/CUDA kernel files and moving operator code from header to cpp file.
      
      * Create foreach cpp file a separate header file with "public" functions.
      
      * Removing unnecessary repeated includes.
      
      * Encapsulate and standardize roi_pool  (#3088)
      
      * Renaming C++ files & methods according to recommended naming conventions and aligning them with Python's API.
      
      * Adding all internal functions in anonymous namespaces.
      
      * Syncing variable names between the cpp files and their header files.
      
      * Renaming C++/CUDA kernel files and moving operator code from header to cpp file.
      
      * Create foreach cpp file a separate header file with "public" functions.
      
      * Removing unnecessary repeated includes.
      
      * Encapsulate and standardize new_empty_tensor_op (#3089)
      
      * Renaming C++ files & methods according to recommended naming conventions and aligning them with Python's API.
      
      * Create foreach cpp file a separate header file with "public" functions.
      
      * Adding all internal functions in anonymous namespaces.
      
      * Convert to const ref all possible parameters.
      
      * Removing unnecessary repeated includes.
      
      * Encapsulate and standardize C++ Ops - Clean up (#3094)
      
      * Removing unnecessary repeated includes.
      
      * Remove unnecessary vision_cpu.h, vision_cuda.h, autocast.h.
      
      * Fixing naming convention and correcting method names on macros.
      
      * Turn on clang formatter for cu files and fixing broken styles.
      
      * Replace "#ifndef ... #define ... #endif" with "#pragma once" on header files.
      
      * Adding operator methods in vision::ops namespace. (#3096)
      
      * Adding operator methods in vision::ops namespace.
      
      * Replace general.h with macros.h
      
      * Adding vision.h to the necessary cpp files.
      0ebbb0ab
  4. 09 Nov, 2020 1 commit
  5. 30 Oct, 2020 1 commit
    • Vasilis Vryniotis's avatar
      DeformConv code cleanup (#2905) · 0e5aee46
      Vasilis Vryniotis authored
      * Clean up and refactor DeformConv implementation:
      - Remove primitive const declaration from method names.
      - Passing as const ref instead of value where possible.
      - Aligning method names between cpu and cuda.
      
      * Adding newline.
      
      * Adding back include for cpu.
      
      * Restoring method names of private methods to avoid conflicts.
      
      * Restore include headers.
      0e5aee46
  6. 27 Oct, 2020 1 commit
  7. 13 Oct, 2020 1 commit
    • vfdev's avatar
      Added rois shape check in C++ (#2794) · b8e93084
      vfdev authored
      * Added rois shape check in C++
      
      * Fixes code formatting
      
      * Remove accidental include
      
      * - Updated code according to the review
      - Replaced old AT_ASSERT/ERROR by new TORCH_CHECK
      b8e93084
  8. 26 May, 2020 1 commit
  9. 07 Apr, 2020 1 commit
  10. 11 Mar, 2020 1 commit
    • Ashish Farmer's avatar
      [ROCm] Create torchvision as a HIP Extension (#1928) · 43e94b39
      Ashish Farmer authored
      * Added code to support creating extension on ROCm
      
      * max -> fmaxf conversion for hipification
      
      * added WITH_HIP flag for hipExtension
      
      * added appropriate headers for HIP build
      
      * use USE_ROCM in condition to build
      
      * change fmaxf and fminf calls
      
      * fminf -> min
      
      * fix the check for ROCM_HOME
      
      * more robust checking for rocm pytorch
      
      * add check for pytorch version before using HIP extensions
      
      * conditional reading of ROCM_HOME
      43e94b39
  11. 04 Dec, 2019 1 commit
    • pedrofreire's avatar
      Add Deformable Convolution operation. (#1586) · 52b8685b
      pedrofreire authored
      * Add Deformable Convolution operation.
      
      This adds the deformable convolution operation, as described in Deformable Convolutional Networks (https://arxiv.org/abs/1703.06211).
      
      - The code is based on https://github.com/open-mmlab/mmdetection/blob/master/mmdet/ops/dcn/src/deform_conv_cuda.cpp ; the whole code was modified and refactored to remove redundancies and increase clarity, and to adapt it to torchvision.
      
      - The CPU part is a direct copy of the CUDA code; it might make sense to do follow-up adjustments in the CPU code to simplify it / optimize it, or to reuse functionality between CPU and CUDA..
      
      - We also add tests (with a non-trivial set of parameters); they can be made more robust by randomizing the parameters and executing multiple times.
      
      * Update DeformConv to be more consistent w/ Conv2d
      
      * rename some variables and arguments to match Conv2d;
      * add optional bias;
      * add weight, offset and bias as module parameters;
      * remove the n_parallel_imgs parameter;
      * Fix __repr__;
      * etc..
      
      Initialization of weight and bias is the same as in Conv2d, and
      initialization of offsets to zero is the same as in the paper.
      
      This also includes some other small unrelated fixes/improvements.
      
      * Apply clang-format in DeformConv files.
      
      * Import Optional type annotation
      
      * Remove offset param from DeformConv2d module
      
      - We pass the offset in the forward of DeformConv2d, instead of having
      an internal parameter. This adds some complexity to creating the module
      (e.g. now you have to worry about the output size, to create the
      offset), but it gives more flexibility.
      - We also use make_tuple for tuple creation, in an attempt to fix error
      w/ older compilers.
      
      * Replace abs by std::abs
      
      Old gcc versions were giving wrong results here, because they would
      resolve abs as int -> int, thus causing undesired truncation. Replacing
      abs by std::abs should allow for correct overloading of abs as float -> float.
      
      * Reorder declarations for clarity
      
      * Reorder weight and offset args in deform_conv2d
      
      We place offset arg before the weight arg, to be more
      consistent with DeformConv2d.forward(input, offset)
      
      * Replace abs by std::abs in DeformConv_cuda
      52b8685b