1. 09 Jun, 2020 1 commit
    • Luya Gao's avatar
      Adding join_mesh in pytorch3d.structures.meshes · e053d7c4
      Luya Gao authored
      Summary: Adding a function in pytorch3d.structures.meshes to join multiple meshes into a Meshes object representing a single mesh. The function currently ignores all textures.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D21876908
      
      fbshipit-source-id: 448602857e9d3d3f774d18bb4e93076f78329823
      e053d7c4
  2. 03 Jun, 2020 1 commit
    • Jeremy Reizenstein's avatar
      Avoid plain division involving integers · 5444c53c
      Jeremy Reizenstein authored
      Summary: To avoid pytorch warnings and future behaviour changes, stop using torch.div and / with tensors of integers.
      
      Reviewed By: gkioxari, mruberry
      
      Differential Revision: D21857955
      
      fbshipit-source-id: fb9f3000f3d953352cdc721d2a5f73d3a4bbf4b7
      5444c53c
  3. 01 Jun, 2020 1 commit
    • Luya Gao's avatar
      Adding support for changing background color · 65620e71
      Luya Gao authored
      Summary: Adds support to hard_rgb_blend and hard blending shaders in shader.py (HardPhongShader, HardGouraudShader, and HardFlatShader) for changing the background color on which objects are rendered
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D21746062
      
      fbshipit-source-id: 08001200f4339d6a69c52405c6b8f4cac9f3f56e
      65620e71
  4. 23 May, 2020 2 commits
    • Nikhila Ravi's avatar
      update rasterizer transform method · e3819a49
      Nikhila Ravi authored
      Summary:
      Update the transform method in the mesh rasterizer class to use the new `update_padded` method on the `Meshes` class to directly update the mesh vertices.
      
      Also added a benchmark.
      
      Reviewed By: gkioxari
      
      Differential Revision: D21700352
      
      fbshipit-source-id: c330e4040c681729eb2cc7bdfd92fb4a51a1a7d6
      e3819a49
    • Georgia Gkioxari's avatar
      update padded in meshes · 1fb97f9c
      Georgia Gkioxari authored
      Summary:
      Three changes to Meshes
      
      1. `num_verts_per_mesh` and `num_faces_per_mesh` are assigned at construction time and are returned without the need for `compute_packed`
      2. `update_padded` updates `verts_padded` and shallow copies faces list and faces_padded and existing attributes from construction.
      3. `padded_to_packed_idx` does not need `compute_packed`
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D21653674
      
      fbshipit-source-id: dc6815a2e2a925fe4a834fe357919da2b2c14527
      1fb97f9c
  5. 20 May, 2020 1 commit
    • Jeremy Reizenstein's avatar
      Alternative type names in PLY #205 · f2d1d2db
      Jeremy Reizenstein authored
      Summary: Add ability to decode ply files which use types like int32.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D21639208
      
      fbshipit-source-id: 0ede7d4aa353a6e940446680a18e7ac0c48fafee
      f2d1d2db
  6. 16 May, 2020 1 commit
    • Justin Johnson's avatar
      Add benchmark for diffuse and specular lighting · d8987c6f
      Justin Johnson authored
      Summary: I was trying to speed up the lighting computations, but my ideas didn't work. Even if that didn't work, we can at least commit the benchmarking script I wrote for diffuse and specular shading.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D21580171
      
      fbshipit-source-id: 8b60c0284e91ecbe258b6aae839bd5c2bbe788aa
      d8987c6f
  7. 15 May, 2020 1 commit
    • Roman Shapovalov's avatar
      Numerical stability of ePnP. · a8377f1f
      Roman Shapovalov authored
      Summary: lg-zhang found the problem with the quadratic part of ePnP implementation: n262385 . It was caused by a coefficient returned from the linear equation solver being equal to exactly 0.0, which caused `sign()` to return 0, something I had not anticipated. I also made sure we avoid division by zero by clamping all relevant denominators.
      
      Reviewed By: nikhilaravi, lg-zhang
      
      Differential Revision: D21531200
      
      fbshipit-source-id: 9eb2fa9d4f4f8f5f411d4cf1cffcc44b365b7e51
      a8377f1f
  8. 10 May, 2020 1 commit
    • David Novotny's avatar
      SO3 log map fix for singularity at PI · 34a0df06
      David Novotny authored
      Summary:
      Fixes the case where the rotation angle is exactly 0/PI.
      Added a test for `so3_log_map(identity_matrix)`.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D21477078
      
      fbshipit-source-id: adff804da97f6f0d4f50aa1f6904a34832cb8bfe
      34a0df06
  9. 06 May, 2020 1 commit
    • Nikhila Ravi's avatar
      allow cameras to be None in rasterizer initialization · 17ca6ecd
      Nikhila Ravi authored
      Summary: Fix to enable a mesh/point rasterizer to be initialized without having to specify the camera.
      
      Reviewed By: jcjohnson, gkioxari
      
      Differential Revision: D21362359
      
      fbshipit-source-id: 4f84ea18ad9f179c7b7c2289ebf9422a2f5e26de
      17ca6ecd
  10. 05 May, 2020 2 commits
    • Georgia Gkioxari's avatar
      add align modes for cubify · a61c9376
      Georgia Gkioxari authored
      Summary: Add alignment modes for cubify operation.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D21393199
      
      fbshipit-source-id: 7022044e591229a6ed5efc361fd3215e65f43f86
      a61c9376
    • Jeremy Reizenstein's avatar
      Looser gradient check in test_rasterize_meshes · 8fc28baa
      Jeremy Reizenstein authored
      Summary: This has been failing intermittently
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D21403157
      
      fbshipit-source-id: 51b74d6c813b52effe72d14b565e250fcabbb463
      8fc28baa
  11. 04 May, 2020 1 commit
    • Nikhila Ravi's avatar
      lint fixes · 0eca74fa
      Nikhila Ravi authored
      Summary:
      Ran the linter.
      TODO: need to update the linter as per D21353065.
      
      Reviewed By: bottler
      
      Differential Revision: D21362270
      
      fbshipit-source-id: ad0e781de0a29f565ad25c43bc94a19b1828c020
      0eca74fa
  12. 01 May, 2020 1 commit
    • Jeremy Reizenstein's avatar
      Joining mismatched texture maps on CUDA #175 · 0c595dcf
      Jeremy Reizenstein authored
      Summary:
      Use nn.functional.interpolate instead of a TorchVision transform to resize texture maps to a common value. This works on all devices. This fixes issue #175.
      
      Also fix the condition so it only happens when needed.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D21324510
      
      fbshipit-source-id: c50eb06514984995bd81f2c44079be6e0b4098e4
      0c595dcf
  13. 30 Apr, 2020 1 commit
    • Georgia Gkioxari's avatar
      fix self assign for normals est · e64e0d17
      Georgia Gkioxari authored
      Summary: Fix self assignment of normals when estimating normals
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D21315980
      
      fbshipit-source-id: 2aa5864c3f066e39e07343f192cc6423ce1ae771
      e64e0d17
  14. 25 Apr, 2020 1 commit
    • Jeremy Reizenstein's avatar
      Driver update for ci, easier diagnosing · 232e4a7e
      Jeremy Reizenstein authored
      Summary: Bump the nvidia driver used in the conda tests. Add an environment variable (unused) to allow building without ninja. Print relative error on assertClose failure.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D21227373
      
      fbshipit-source-id: 5dd8eb097151da27d3632daa755a1e7b9ac97845
      232e4a7e
  15. 24 Apr, 2020 4 commits
    • Nikhila Ravi's avatar
      fix get cuda device test error · cf84dacf
      Nikhila Ravi authored
      Summary:
      Cuda test failing on circle with the error `random_ expects 'from' to be less than 'to', but got from=0 >= to=0`
      
      This is because the `high` value in `torch.randint` is 1 more than the highest value in the distribution from which a value is drawn. So if there is only 1 cuda device available then the low and high are 0.
      
      Reviewed By: gkioxari
      
      Differential Revision: D21236669
      
      fbshipit-source-id: 46c312d431c474f1f2c50747b1d5e7afbd7df3a9
      cf84dacf
    • Michele Sanna's avatar
      a formula for bin size for images over 64x64 (#90) · f8acecb6
      Michele Sanna authored
      
      
      Summary:
      Signed-off-by: default avatarMichele Sanna <sanna@arrival.com>
      
      fixes the bin_size calculation with a formula for any image_size > 64. Matches the values chosen so far.
      
      simple test:
      
      ```
      import numpy as np
      import matplotlib.pyplot as plt
      
      image_size = np.arange(64, 2048)
      bin_size = np.where(image_size <= 64, 8, (2 ** np.maximum(np.ceil(np.log2(image_size)) - 4, 4)).astype(int))
      
      print(image_size)
      print(bin_size)
      
      for ims, bins in zip(image_size, bin_size):
          if ims <= 64:
              assert bins == 8
          elif ims <= 256:
              assert bins == 16
          elif ims <= 512:
              assert bins == 32
          elif ims <= 1024:
              assert bins == 64
          elif ims <= 2048:
              assert bins == 128
      
          assert (ims + bins - 1) // bins < 22
      
      plt.plot(image_size, bin_size)
      plt.grid()
      plt.show()
      ```
      
      ![img](https://user-images.githubusercontent.com/54891577/75464693-795bcf00-597f-11ea-9061-26440211691c.png)
      Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/90
      
      Reviewed By: jcjohnson
      
      Differential Revision: D21160372
      
      Pulled By: nikhilaravi
      
      fbshipit-source-id: 660cf5832f4ca5be243c435a6bed969596fc0188
      f8acecb6
    • Nikhila Ravi's avatar
      Cuda updates · c3d636dc
      Nikhila Ravi authored
      Summary:
      Updates to:
      - enable cuda kernel launches on any GPU (not just the default)
      - cuda and contiguous checks for all kernels
      - checks to ensure all tensors are on the same device
      - error reporting in the cuda kernels
      - cuda tests now run on a random device not just the default
      
      Reviewed By: jcjohnson, gkioxari
      
      Differential Revision: D21215280
      
      fbshipit-source-id: 1bedc9fe6c35e9e920bdc4d78ed12865b1005519
      c3d636dc
    • Nikhila Ravi's avatar
      Update load obj and compare with SoftRas · c9267ab7
      Nikhila Ravi authored
      Summary:
      Updated the load obj function to support creating of a per face texture map using the information in an .mtl file. Uses the approach from in SoftRasterizer.
      
      Currently I have ported in the SoftRasterizer code but this is only to help with comparison and will  be deleted before landing. The ShapeNet Test data will also be deleted.
      
      Here is the [Design doc](https://docs.google.com/document/d/1AUcLP4QwVSqlfLAUfbjM9ic5vYn9P54Ha8QbcVXW2eI/edit?usp=sharing).
      
      ## Added
      - texture atlas creation functions in PyTorch based on the SoftRas cuda implementation
      - tests to compare SoftRas vs PyTorch3D implementation to verify it matches (using real shapenet data with meshes consisting of multiple textures)
      - benchmarks tests
      
      ## Remaining todo:
      - add more tests for obj io to test the new functions and the two texturing options
      - replace the shapenet data with the output from SoftRas saved as a file.
      
      # MAIN FILES TO REVIEW
      
      - `obj_io.py`
      - `test_obj_io.py` [still some tests to be added but have comparisons with SoftRas for now]
      
      The reference SoftRas implementations are in `softras_load_obj.py` and `load_textures.cu`.
      
      Reviewed By: gkioxari
      
      Differential Revision: D20754859
      
      fbshipit-source-id: 42ace9dfb73f26e29d800c763f56d5b66c60c5e2
      c9267ab7
  16. 22 Apr, 2020 3 commits
    • Justin Johnson's avatar
      Expose knn_check_version in python · 9f31a4fd
      Justin Johnson authored
      Summary:
      We have multiple KNN CUDA implementations. From python, users can currently request a particular implementation via the `version` flag, but they have no way of knowing which implementations can be used for a given problem.
      
      This diff exposes a function `pytorch3d._C.knn_check_version(version, D, K)` that returns whether a particular version can be used.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D21162573
      
      fbshipit-source-id: 6061960bdcecba454fd920b00036f4e9ff3fdbc0
      9f31a4fd
    • Jeremy Reizenstein's avatar
      chamfer test consistency · 9e4bd2e5
      Jeremy Reizenstein authored
      Summary:
      Modify test_chamfer for more robustness. Avoid empty pointclouds, including where point_reduction is mean, for which we currently return nan (*), and so that we aren't looking at an empty gradient. Make sure we aren't using padding as points in the homogenous cases in the tests, which will lead to a tie between closest points and therefore a potential instability in the gradient - see https://github.com/pytorch/pytorch/issues/35699.
      
      (*) This doesn't attempt to fix the nan.
      
      Reviewed By: nikhilaravi, gkioxari
      
      Differential Revision: D21157322
      
      fbshipit-source-id: a609e84e25a24379c8928ff645d587552526e4af
      9e4bd2e5
    • Nikhila Ravi's avatar
      back face culling in rasterization · 4bf30593
      Nikhila Ravi authored
      Summary:
      Added backface culling as an option to the `raster_settings`. This is needed for the full forward rendering of shapenet meshes with texture (some meshes contain
      multiple overlapping segments which have different textures).
      
      For a triangle (v0, v1, v2) define the vectors A = (v1 - v0) and B = (v2 − v0) and use this to calculate the area of the triangle as:
      ```
      area = 0.5 * A  x B
      area = 0.5 * ((x1 − x0)(y2 − y0) − (x2 − x0)(y1 − y0))
      ```
      The area will be positive if (v0, v1, v2) are oriented counterclockwise (a front face), and negative if (v0, v1, v2) are oriented clockwise (a back face).
      
      We can reuse the `edge_function` as it already calculates the triangle area.
      
      Reviewed By: jcjohnson
      
      Differential Revision: D20960115
      
      fbshipit-source-id: 2d8a4b9ccfb653df18e79aed8d05c7ec0f057ab1
      4bf30593
  17. 20 Apr, 2020 2 commits
    • Nikhila Ravi's avatar
      coarse rasterization bug fix · 9ef1ee84
      Nikhila Ravi authored
      Summary:
      Fix a bug which resulted in a rendering artifacts if the image size was not a multiple of 16.
      Fix: Revert coarse rasterization to original implementation and only update fine rasterization to reverse the ordering of Y and X axis. This is much simpler than the previous approach!
      
      Additional changes:
      - updated mesh rendering end-end tests to check outputs from both naive and coarse to fine rasterization.
      - added pointcloud rendering end-end tests
      
      Reviewed By: gkioxari
      
      Differential Revision: D21102725
      
      fbshipit-source-id: 2e7e1b013dd6dd12b3a00b79eb8167deddb2e89a
      9ef1ee84
    • Jeremy Reizenstein's avatar
      skip code tests in conda build · 1e474960
      Jeremy Reizenstein authored
      Summary:
      None of the current test_build tests make sense during `conda build`.
      
      Also remove the unnecessary dependency on the `six` library.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D20893852
      
      fbshipit-source-id: 685f0446eaa0bd9151eeee89fc630a1ddc0252ff
      1e474960
  18. 17 Apr, 2020 5 commits
    • Jeremy Reizenstein's avatar
      spelling and flake · 6207c359
      Jeremy Reizenstein authored
      Summary: mostly recent lintish things
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D21089003
      
      fbshipit-source-id: 028733c1d875268f1879e4481da475b7100ba0b6
      6207c359
    • Jeremy Reizenstein's avatar
      vert_align for Pointclouds object · f25af969
      Jeremy Reizenstein authored
      Reviewed By: gkioxari
      
      Differential Revision: D21088730
      
      fbshipit-source-id: f8c125ac8c8009d45712ae63237ca64acf1faf45
      f25af969
    • Roman Shapovalov's avatar
      Efficient PnP. · 04d8bf6a
      Roman Shapovalov authored
      Summary:
      Efficient PnP algorithm to fit 2D to 3D correspondences under perspective assumption.
      
      Benchmarked both variants of nullspace and pick one; SVD takes 7 times longer in the 100K points case.
      
      Reviewed By: davnov134, gkioxari
      
      Differential Revision: D20095754
      
      fbshipit-source-id: 2b4519729630e6373820880272f674829eaed073
      04d8bf6a
    • David Novotny's avatar
      Camera inheritance + unprojections · 7788a380
      David Novotny authored
      Summary: Made a CameraBase class. Added `unproject_points` method for each camera class.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D20373602
      
      fbshipit-source-id: 7e3da5ae420091b5fcab400a9884ef29ad7a7343
      7788a380
    • David Novotny's avatar
      Pointcloud normals estimation. · 365945b1
      David Novotny authored
      Summary: Estimates normals of a point cloud.
      
      Reviewed By: gkioxari
      
      Differential Revision: D20860182
      
      fbshipit-source-id: 652ec2743fa645e02c01ffa37c2971bf27b89cef
      365945b1
  19. 16 Apr, 2020 3 commits
    • David Novotny's avatar
      ICP - point-to-point version · 8abbe22f
      David Novotny authored
      Summary:
      The iterative closest point algorithm - point-to-point version.
      
      Output of `bm_iterative_closest_point`:
      Argument key: `batch_size dim n_points_X n_points_Y use_pointclouds`
      
      ```
      Benchmark                                         Avg Time(μs)      Peak Time(μs) Iterations
      --------------------------------------------------------------------------------
      IterativeClosestPoint_1_3_100_100_False              107569          111323              5
      IterativeClosestPoint_1_3_100_1000_False             118972          122306              5
      IterativeClosestPoint_1_3_1000_100_False             108576          110978              5
      IterativeClosestPoint_1_3_1000_1000_False            331836          333515              2
      IterativeClosestPoint_1_20_100_100_False             134387          137842              4
      IterativeClosestPoint_1_20_100_1000_False            149218          153405              4
      IterativeClosestPoint_1_20_1000_100_False            414248          416595              2
      IterativeClosestPoint_1_20_1000_1000_False           374318          374662              2
      IterativeClosestPoint_10_3_100_100_False             539852          539852              1
      IterativeClosestPoint_10_3_100_1000_False            752784          752784              1
      IterativeClosestPoint_10_3_1000_100_False           1070700         1070700              1
      IterativeClosestPoint_10_3_1000_1000_False          1164020         1164020              1
      IterativeClosestPoint_10_20_100_100_False            374548          377337              2
      IterativeClosestPoint_10_20_100_1000_False           472764          476685              2
      IterativeClosestPoint_10_20_1000_100_False          1457175         1457175              1
      IterativeClosestPoint_10_20_1000_1000_False         2195820         2195820              1
      IterativeClosestPoint_1_3_100_100_True               110084          115824              5
      IterativeClosestPoint_1_3_100_1000_True              142728          147696              4
      IterativeClosestPoint_1_3_1000_100_True              212966          213966              3
      IterativeClosestPoint_1_3_1000_1000_True             369130          375114              2
      IterativeClosestPoint_10_3_100_100_True              354615          355179              2
      IterativeClosestPoint_10_3_100_1000_True             451815          452704              2
      IterativeClosestPoint_10_3_1000_100_True             511833          511833              1
      IterativeClosestPoint_10_3_1000_1000_True            798453          798453              1
      --------------------------------------------------------------------------------
      ```
      
      Reviewed By: shapovalov, gkioxari
      
      Differential Revision: D19909952
      
      fbshipit-source-id: f77fadc88fb7c53999909d594114b182ee2a3def
      8abbe22f
    • Nikhila Ravi's avatar
      lint fixes · b530b0af
      Nikhila Ravi authored
      Summary: Resolved trailing whitespace warnings.
      
      Reviewed By: gkioxari
      
      Differential Revision: D21023982
      
      fbshipit-source-id: 14ea2ca372c13cfa987acc260264ca99ce44c461
      b530b0af
    • Nikhila Ravi's avatar
      remove nearest_neighbors · 3794f675
      Nikhila Ravi authored
      Summary: knn is more general and faster than the nearest_neighbor code, so remove the latter.
      
      Reviewed By: gkioxari
      
      Differential Revision: D20816424
      
      fbshipit-source-id: 75d6c44d17180752d0c9859814bbdf7892558158
      3794f675
  20. 15 Apr, 2020 3 commits
  21. 11 Apr, 2020 1 commit
    • Georgia Gkioxari's avatar
      point mesh distances · 487d4d66
      Georgia Gkioxari authored
      Summary:
      Implementation of point to mesh distances. The current diff contains two types:
      (a) Point to Edge
      (b) Point to Face
      
      ```
      
      Benchmark                                       Avg Time(μs)      Peak Time(μs) Iterations
      --------------------------------------------------------------------------------
      POINT_MESH_EDGE_4_100_300_5000_cuda:0                2745            3138            183
      POINT_MESH_EDGE_4_100_300_10000_cuda:0               4408            4499            114
      POINT_MESH_EDGE_4_100_3000_5000_cuda:0               4978            5070            101
      POINT_MESH_EDGE_4_100_3000_10000_cuda:0              9076            9187             56
      POINT_MESH_EDGE_4_1000_300_5000_cuda:0               1411            1487            355
      POINT_MESH_EDGE_4_1000_300_10000_cuda:0              4829            5030            104
      POINT_MESH_EDGE_4_1000_3000_5000_cuda:0              7539            7620             67
      POINT_MESH_EDGE_4_1000_3000_10000_cuda:0            12088           12272             42
      POINT_MESH_EDGE_8_100_300_5000_cuda:0                3106            3222            161
      POINT_MESH_EDGE_8_100_300_10000_cuda:0               8561            8648             59
      POINT_MESH_EDGE_8_100_3000_5000_cuda:0               6932            7021             73
      POINT_MESH_EDGE_8_100_3000_10000_cuda:0             24032           24176             21
      POINT_MESH_EDGE_8_1000_300_5000_cuda:0               5272            5399             95
      POINT_MESH_EDGE_8_1000_300_10000_cuda:0             11348           11430             45
      POINT_MESH_EDGE_8_1000_3000_5000_cuda:0             17478           17683             29
      POINT_MESH_EDGE_8_1000_3000_10000_cuda:0            25961           26236             20
      POINT_MESH_EDGE_16_100_300_5000_cuda:0               8244            8323             61
      POINT_MESH_EDGE_16_100_300_10000_cuda:0             18018           18071             28
      POINT_MESH_EDGE_16_100_3000_5000_cuda:0             19428           19544             26
      POINT_MESH_EDGE_16_100_3000_10000_cuda:0            44967           45135             12
      POINT_MESH_EDGE_16_1000_300_5000_cuda:0              7825            7937             64
      POINT_MESH_EDGE_16_1000_300_10000_cuda:0            18504           18571             28
      POINT_MESH_EDGE_16_1000_3000_5000_cuda:0            65805           66132              8
      POINT_MESH_EDGE_16_1000_3000_10000_cuda:0           90885           91089              6
      --------------------------------------------------------------------------------
      
      Benchmark                                       Avg Time(μs)      Peak Time(μs) Iterations
      --------------------------------------------------------------------------------
      POINT_MESH_FACE_4_100_300_5000_cuda:0                1561            1685            321
      POINT_MESH_FACE_4_100_300_10000_cuda:0               2818            2954            178
      POINT_MESH_FACE_4_100_3000_5000_cuda:0              15893           16018             32
      POINT_MESH_FACE_4_100_3000_10000_cuda:0             16350           16439             31
      POINT_MESH_FACE_4_1000_300_5000_cuda:0               3179            3278            158
      POINT_MESH_FACE_4_1000_300_10000_cuda:0              2353            2436            213
      POINT_MESH_FACE_4_1000_3000_5000_cuda:0             16262           16336             31
      POINT_MESH_FACE_4_1000_3000_10000_cuda:0             9334            9448             54
      POINT_MESH_FACE_8_100_300_5000_cuda:0                4377            4493            115
      POINT_MESH_FACE_8_100_300_10000_cuda:0               9728            9822             52
      POINT_MESH_FACE_8_100_3000_5000_cuda:0              26428           26544             19
      POINT_MESH_FACE_8_100_3000_10000_cuda:0             42238           43031             12
      POINT_MESH_FACE_8_1000_300_5000_cuda:0               3891            3982            129
      POINT_MESH_FACE_8_1000_300_10000_cuda:0              5363            5429             94
      POINT_MESH_FACE_8_1000_3000_5000_cuda:0             20998           21084             24
      POINT_MESH_FACE_8_1000_3000_10000_cuda:0            39711           39897             13
      POINT_MESH_FACE_16_100_300_5000_cuda:0               5955            6001             84
      POINT_MESH_FACE_16_100_300_10000_cuda:0             12082           12144             42
      POINT_MESH_FACE_16_100_3000_5000_cuda:0             44996           45176             12
      POINT_MESH_FACE_16_100_3000_10000_cuda:0            73042           73197              7
      POINT_MESH_FACE_16_1000_300_5000_cuda:0              8292            8374             61
      POINT_MESH_FACE_16_1000_300_10000_cuda:0            19442           19506             26
      POINT_MESH_FACE_16_1000_3000_5000_cuda:0            36059           36194             14
      POINT_MESH_FACE_16_1000_3000_10000_cuda:0           64644           64822              8
      --------------------------------------------------------------------------------
      ```
      
      Reviewed By: jcjohnson
      
      Differential Revision: D20590462
      
      fbshipit-source-id: 42a39837b514a546ac9471bfaff60eefe7fae829
      487d4d66
  22. 07 Apr, 2020 1 commit
    • Jeremy Reizenstein's avatar
      heterogenous KNN · 01b5f7b2
      Jeremy Reizenstein authored
      Summary: Interface and working implementation of ragged KNN. Benchmarks (which aren't ragged) haven't slowed. New benchmark shows that ragged is faster than non-ragged of the same shape.
      
      Reviewed By: jcjohnson
      
      Differential Revision: D20696507
      
      fbshipit-source-id: 21b80f71343a3475c8d3ee0ce2680f92f0fae4de
      01b5f7b2
  23. 06 Apr, 2020 2 commits
    • Jeremy Reizenstein's avatar
      Allow conda's generated files. · 29b9c44c
      Jeremy Reizenstein authored
      Summary: The conda build process generates some files of its own, which we don't want to catch in our test for copyright notices.
      
      Reviewed By: nikhilaravi, patricklabatut
      
      Differential Revision: D20868566
      
      fbshipit-source-id: 76a786a3eb9a674d59e630cc06f346e8b82258a4
      29b9c44c
    • Jeremy Reizenstein's avatar
      fix recent lint · b87058c6
      Jeremy Reizenstein authored
      Summary: lint clean again
      
      Reviewed By: patricklabatut
      
      Differential Revision: D20868775
      
      fbshipit-source-id: ade4301c1012c5c6943186432465215701d635a9
      b87058c6