1. 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
  2. 16 Nov, 2020 1 commit
  3. 09 Nov, 2020 1 commit
  4. 30 Oct, 2020 6 commits
    • Vasilis Vryniotis's avatar
      PSROIPool + Dispatcher + Autocast + Code Cleanup (#2926) · b93d5ee2
      Vasilis Vryniotis authored
      * Fixing types.
      
      * Dispatcher + Autocast.
      
      * + Autograd.
      
      * Formating.
      
      * Clean up and refactor PSROIPool implementation:
      - Remove primitive const declaration from method names.
      - Using references when possible.
      - Fix variable naming.
      
      * Restore include headers.
      
      * New line at end of file.
      
      * Resolving conflict, final cleanup, ordering method consistently across files.
      b93d5ee2
    • Vasilis Vryniotis's avatar
      ROIPool + Dispatcher + Autocast + Code Cleanup (#2922) · 0125a7dc
      Vasilis Vryniotis authored
      * Fixing types.
      
      * Dispatcher + Autocast.
      
      * + Autograd.
      
      * Formating.
      
      * Fixing return casting with autocast.
      
      * Clean up and refactor ROIPool implementation:
      - Remove primitive const declaration from method names.
      - Using references when possible.
      
      * Restore include headers.
      
      * New line at end of file.
      0125a7dc
    • Vasilis Vryniotis's avatar
      ROIAlign code cleanup (#2906) · f0c92d85
      Vasilis Vryniotis authored
      * Clean up and refactor ROIAlign implementation:
      - Remove primitive const declaration from method names.
      - Passing as const ref instead of value where possible.
      - Remove unnecessary headers.
      
      * Adding back include for cpu.
      
      * Restore include headers.
      f0c92d85
    • Vasilis Vryniotis's avatar
      PSROIAlign + Dispatcher + Autocast + Code Cleanup (#2928) · b06e43d6
      Vasilis Vryniotis authored
      * Fixing types.
      
      * Dispatcher + Autocast.
      
      * + Autograd.
      
      * Clean up and refactor PSROIAlign implementation:
      - Remove primitive const declaration from method names.
      - Using references when possible.
      - Sync naming of internal methods with other ops.
      
      * Restoring names of internal methods to avoid conflicts.
      
      * Restore include headers.
      b06e43d6
    • 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
    • Vasilis Vryniotis's avatar
      NMS code cleanup (#2907) · 455cd57c
      Vasilis Vryniotis authored
      * Clean up and refactor ROIAlign implementation:
      - Remove primitive const declaration from method names.
      - Remove unnecessary headers.
      - Aligning method names between cpu and cuda.
      
      * Adding back include for cpu.
      
      * Restoring method names of private methods to avoid conflicts.
      
      * Restore include headers.
      455cd57c
  5. 27 Oct, 2020 1 commit
  6. 26 Oct, 2020 2 commits
  7. 16 Oct, 2020 1 commit
    • bmanga's avatar
      Ensure torchvision operators are added in C++ (#2798) · adfc15c4
      bmanga authored
      * Ensure torchvision operators are registered in C++ via weak symbols
      
      * Add note to README on how to ensure that torchvision operators are available in C++
      
      * Fix dllimport/dllexport on windows, format files
      
      * Factor out common macros in single file
      
      * Expose cuda_version in the API, use it to avoid pruning of ops initializer
      adfc15c4
  8. 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
  9. 11 Oct, 2020 1 commit
  10. 14 Sep, 2020 1 commit
    • Edgar Andrés Margffoy Tuay's avatar
      PR: Add CMake build and function tracing tests (#2577) · a075d629
      Edgar Andrés Margffoy Tuay authored
      
      
      * Add CMake build pipeline
      
      * Add CMake build workflow
      
      * Add executable permissions to script
      
      * Install cmake on Windows/MacOS
      
      * Install conda-build before setting up MSVC
      
      * Install PyTorch from nightly
      
      * Do not use conda-build variables
      
      * Add path to CMake
      
      * Install libpng and libjpeg
      
      * Perform make
      
      * Call msbuild on Windows
      
      * Add missing yq
      
      * Use vc_env_helper
      
      * Use string instruction
      
      * Escape configuration option
      
      * Remove configuration flag
      
      * Try to pass -p
      
      * Use caret to escape equal sign
      
      * Escape string option in Windows
      
      * Try to call other bat
      
      * Remove Windows/GPU CMake
      
      * Add tracing cpp test
      
      * Script model instead of tracing it
      
      * Try to register operators manually
      
      * Use manylinux-cuda102
      
      * Activate conda env on Linux
      
      * Build and run sample tracing test
      
      * Add empty echo
      
      * Remove unnecessary register
      
      * Copy headers on Mac
      
      * Revert to 2xlarge
      
      * Include /usr/local/include on Mac
      
      * Install pillow on Windows
      
      * Install future
      
      * Install torchvision on Windows
      
      * Set include flag
      
      * Add torchlib to PATH
      
      * Normalize path via cygpath
      
      * Register ops on Windows
      
      * Minor error correction
      
      * Register CPU/GPU ops on DLL library and register ops via reference
      
      * Install dataclasses
      
      * Install dataclasses using pip
      
      * Address clang formatting issue
      
      * Try to use an actual GPU instance on Linux
      
      * Remove extra environment section
      
      * Declare environment explicitly
      
      * Regenerate
      
      * Pass env variables to Dokcer
      
      * Regenerate circleci
      
      * Test tracing on GPU
      
      * Use GPU medium
      
      * Regenerate
      
      * Use cuda101
      
      * Regenerate
      
      * Do not use pre-trained weights
      
      Avoids having to download pretrained files, which could cause flaky tests
      Co-authored-by: default avatarFrancisco Massa <fvsmassa@gmail.com>
      a075d629
  11. 02 Sep, 2020 1 commit
  12. 24 Aug, 2020 1 commit
    • vfdev's avatar
      Fixes crash in deformable convolutions (2598) (#2604) · 8c32666b
      vfdev authored
      * [WIP] Fixes #2598
      - Adjusted num_kernels and batch_size according to kMaxGridNum * CUDA_NUM_THREADS
      - Tests to add
      
      * - Redefined kMaxGridNum as max grid according to current CUDA device
      - Added test to check the code from issue and compared grads CPU/CUDA
      
      * Fixed static kMaxGridNum evaluation to dynamic
      8c32666b
  13. 09 Jul, 2020 2 commits
    • Francisco Massa's avatar
      Fix wrong clamping in RoIAlign with aligned=True (#2438) · 131ba132
      Francisco Massa authored
      * Fix wrong clamping in RoIAlign with aligned=True
      
      * Fix silly mistake
      
      * Bugfix pointed out during code-review
      131ba132
    • mcarilli's avatar
      [WIP] Allow autocast for 1.6 (#2384) · 0a8586c9
      mcarilli authored
      
      
      * Fixes Xiao's repro
      
      * Ports nms to use full dispatcher
      
      * Move HIPGuard to nms_cuda
      
      * clang-format
      
      * run models in test_models.py on GPU if available
      
      * Francisco's comment, also disable cuda model tests to see if CPU alone still passes
      
      * cuda tests now pass locally, although still not comparing to saved numerics
      
      * add note for thing to ask francisco
      
      * Allow cuda and cpu tests to share a data file
      
      * ignore suffix if unneeded
      
      * Skip autocast numerics checks for a few models
      
      * Add roi_align test
      Co-authored-by: default avatarMichael Carilli <mcarilli@nvidia.com>
      0a8586c9
  14. 30 Jun, 2020 1 commit
  15. 14 May, 2020 1 commit
  16. 04 May, 2020 1 commit
  17. 23 Apr, 2020 1 commit
  18. 07 Apr, 2020 2 commits
    • Brian Hart's avatar
      improve consistency among box IoU calculations (#2072) · f6a3e0c3
      Brian Hart authored
      Torchvision includes at least 3 bits of code that calculate
      box Intersection over Union values (and usually compare to
      a threshold):
      
      - box_iou in torchvision/ops/boxes.py
      - devIoU in torchvision/csrc/cuda/nms_cuda.cu
      - nms_cpu_kernel in torchvision/csrc/cpu/nms_cpu.cpp
      
      The calculations were performed slightly differently between
      those, leading to occasional differences in results.
      
      Update devIoU to use the same method as the others for better
      consistency.
      
      This change improves agreement between the CPU and CUDA
      calculations but the results can still differ slightly.
      Setting NVCC_FLAGS to include "--fmad=true" would provide
      still better agreement, but with likely cost to performance.
      f6a3e0c3
    • AhnDW's avatar
      Remove warning about deprecated (#2064) · 57c789f8
      AhnDW authored
      * Replace **.is_cuda() to just is_cuda()
      
      * Replace type to scalar_type
      
      * Fix lint, clang-format
      
      * Fix lint, clang-format
      57c789f8
  19. 02 Apr, 2020 1 commit
  20. 30 Mar, 2020 2 commits
    • Yuwen Xiong's avatar
      Fix shape error for deform conv (#2027) · 7ee5a8b7
      Yuwen Xiong authored
      * fix shape error for deform conv gpu op
      
      recover shape of columns for next iteration in for loops, previous version will cause error when batch_sz / n_parallel_imgs > 1
      
      * fix shape error for deform conv cpu op
      
      recover shape of columns for next iteration in for loops, previous version will cause error when batch_sz / n_parallel_imgs > 1
      7ee5a8b7
    • Mikhail Lobanov's avatar
      Fix Tensor::data<> deprecation. (#2028) · 561a014b
      Mikhail Lobanov authored
      561a014b
  21. 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
  22. 04 Mar, 2020 1 commit
    • AhnDW's avatar
      `aligned` flag in ROIAlign (#1908) · e1e975f9
      AhnDW authored
      * Aligned flag in the interfaces
      
      * Aligned flag in the impl, and remove unused comments
      
      * Handling empty bin in forward
      
      * Remove raise error in roi_width
      
      * Aligned flag in the Testcodes
      e1e975f9
  23. 02 Jan, 2020 1 commit
  24. 16 Dec, 2019 1 commit
  25. 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
  26. 05 Nov, 2019 1 commit
  27. 17 Oct, 2019 1 commit
  28. 16 Oct, 2019 1 commit
  29. 29 Aug, 2019 1 commit
  30. 25 Jun, 2019 1 commit
  31. 23 May, 2019 1 commit
    • Francisco Massa's avatar
      Fix windows build (#953) · f5167537
      Francisco Massa authored
      * #944
        MSBuild Compile time casting Error
      
      * #944
       MSBuild Error  static_cast<Long> to static_cast<int64_t>
      
      * Add eval.py
       Not Work find_contours
      
      * Remove unnecessary file
      
      * Lint
      f5167537