1. 26 Mar, 2020 1 commit
    • Justin Johnson's avatar
      Implement K-Nearest Neighbors · 870290df
      Justin Johnson authored
      Summary:
      Implements K-Nearest Neighbors with C++ and CUDA versions.
      
      KNN in CUDA is highly nontrivial. I've implemented a few different versions of the kernel, and we heuristically dispatch to different kernels based on the problem size. Some of the kernels rely on template specialization on either D or K, so we use template metaprogramming to compile specialized versions for ranges of D and K.
      
      These kernels are up to 3x faster than our existing 1-nearest-neighbor kernels, so we should also consider swapping out `nn_points_idx` to use these kernels in the backend.
      
      I've been working mostly on the CUDA kernels, and haven't converged on the correct Python API.
      
      I still want to benchmark against FAISS to see how far away we are from their performance.
      
      Reviewed By: bottler
      
      Differential Revision: D19729286
      
      fbshipit-source-id: 608ffbb7030c21fe4008f330522f4890f0c3c21a
      870290df
  2. 12 Mar, 2020 1 commit
    • Patrick Labatut's avatar
      Remove shebang line when not strictly required · 3c71ab64
      Patrick Labatut authored
      Summary: The shebang line `#!<path to interpreter>` is only required for Python scripts, so remove it on source files for class or function definitions. Additionally explicitly mark as executable the actual Python scripts in the codebase.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D20095778
      
      fbshipit-source-id: d312599fba485e978a243292f88a180d71e1b55a
      3c71ab64
  3. 14 Feb, 2020 1 commit
    • Nikhila Ravi's avatar
      lint fixes · 97acf16d
      Nikhila Ravi authored
      Summary: Ran `dev/linter.sh`.
      
      Reviewed By: bottler
      
      Differential Revision: D19761062
      
      fbshipit-source-id: 1a49abe4a5f2bc7641b2b46e254aa77e6a48aa7d
      97acf16d
  4. 03 Feb, 2020 1 commit
    • Justin Johnson's avatar
      Add CPU implementation for nearest neighbor · e290f87c
      Justin Johnson authored
      Summary:
      Adds a CPU implementation for `pytorch3d.ops.nn_points_idx`.
      
      Also renames the associated C++ and CUDA functions to use `AllCaps` names used in other C++ / CUDA code.
      
      Reviewed By: gkioxari
      
      Differential Revision: D19670491
      
      fbshipit-source-id: 1b6409404025bf05e6a93f5d847e35afc9062f05
      e290f87c
  5. 23 Jan, 2020 1 commit