takiyu
f358b9b14d
Fix squared distance for CPU impl. ( #83 )
...
Summary:
`PointLineDistanceForward()` should return squared distance. However, it seems that it returned non-squared distance when `v0` was near by `v1` in CPU implementation.
Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/83
Reviewed By: bottler
Differential Revision: D20097181
Pulled By: nikhilaravi
fbshipit-source-id: 7ea851c0837ab89364e42d283c999df21ff5ff02
2020-02-25 14:00:00 -08:00
merayxu
9e21659fc5
Fixed windows MSVC build compatibility ( #9 )
...
Summary:
Fixed a few MSVC compiler (visual studio 2019, MSVC 19.16.27034) compatibility issues
1. Replaced long with int64_t. aten::data_ptr\<long\> is not supported in MSVC
2. pytorch3d/csrc/rasterize_points/rasterize_points_cpu.cpp, inline function is not correctly recognized by MSVC.
3. pytorch3d/csrc/rasterize_meshes/geometry_utils.cuh
const auto kEpsilon = 1e-30;
MSVC does not compile this const into both host and device, change to a MACRO.
4. pytorch3d/csrc/rasterize_meshes/geometry_utils.cuh,
const float area2 = pow(area, 2.0);
2.0 is considered as double by MSVC and raised an error
5. pytorch3d/csrc/rasterize_points/rasterize_points_cpu.cpp
std::tuple<torch::Tensor, torch::Tensor> RasterizePointsCoarseCpu() return type does not match the declaration in rasterize_points_cpu.h.
Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/9
Reviewed By: nikhilaravi
Differential Revision: D19986567
Pulled By: yuanluxu
fbshipit-source-id: f4d98525d088c99c513b85193db6f0fc69c7f017
2020-02-20 18:43:19 -08:00
Georgia Gkioxari
a3baa367e3
face areas backward
...
Summary:
Added backward for mesh face areas & normals. Exposed it as a layer. Replaced the computation with the new op in Meshes and in Sample Points.
Current issue: Circular imports. I moved the import of the op in meshes inside the function scope.
Reviewed By: jcjohnson
Differential Revision: D19920082
fbshipit-source-id: d213226d5e1d19a0c8452f4d32771d07e8b91c0a
2020-02-20 11:11:33 -08:00
Georgia Gkioxari
60f3c4e7d2
cpp support for packed to padded
...
Summary:
Cpu implementation for packed to padded and added gradients
```
Benchmark Avg Time(μs) Peak Time(μs) Iterations
--------------------------------------------------------------------------------
PACKED_TO_PADDED_2_100_300_1_cpu 138 221 3625
PACKED_TO_PADDED_2_100_300_1_cuda:0 184 261 2716
PACKED_TO_PADDED_2_100_300_16_cpu 555 726 901
PACKED_TO_PADDED_2_100_300_16_cuda:0 179 260 2794
PACKED_TO_PADDED_2_100_3000_1_cpu 396 519 1262
PACKED_TO_PADDED_2_100_3000_1_cuda:0 181 274 2764
PACKED_TO_PADDED_2_100_3000_16_cpu 4517 5003 111
PACKED_TO_PADDED_2_100_3000_16_cuda:0 224 397 2235
PACKED_TO_PADDED_2_1000_300_1_cpu 138 212 3616
PACKED_TO_PADDED_2_1000_300_1_cuda:0 180 282 2775
PACKED_TO_PADDED_2_1000_300_16_cpu 565 711 885
PACKED_TO_PADDED_2_1000_300_16_cuda:0 179 264 2797
PACKED_TO_PADDED_2_1000_3000_1_cpu 389 494 1287
PACKED_TO_PADDED_2_1000_3000_1_cuda:0 180 271 2777
PACKED_TO_PADDED_2_1000_3000_16_cpu 4522 5170 111
PACKED_TO_PADDED_2_1000_3000_16_cuda:0 216 286 2313
PACKED_TO_PADDED_10_100_300_1_cpu 251 345 1995
PACKED_TO_PADDED_10_100_300_1_cuda:0 178 262 2806
PACKED_TO_PADDED_10_100_300_16_cpu 2354 2750 213
PACKED_TO_PADDED_10_100_300_16_cuda:0 178 291 2814
PACKED_TO_PADDED_10_100_3000_1_cpu 1519 1786 330
PACKED_TO_PADDED_10_100_3000_1_cuda:0 179 237 2791
PACKED_TO_PADDED_10_100_3000_16_cpu 24705 25879 21
PACKED_TO_PADDED_10_100_3000_16_cuda:0 228 316 2191
PACKED_TO_PADDED_10_1000_300_1_cpu 261 432 1919
PACKED_TO_PADDED_10_1000_300_1_cuda:0 181 261 2756
PACKED_TO_PADDED_10_1000_300_16_cpu 2349 2770 213
PACKED_TO_PADDED_10_1000_300_16_cuda:0 180 256 2782
PACKED_TO_PADDED_10_1000_3000_1_cpu 1613 1929 310
PACKED_TO_PADDED_10_1000_3000_1_cuda:0 183 253 2739
PACKED_TO_PADDED_10_1000_3000_16_cpu 22041 23653 23
PACKED_TO_PADDED_10_1000_3000_16_cuda:0 220 343 2270
PACKED_TO_PADDED_32_100_300_1_cpu 555 750 901
PACKED_TO_PADDED_32_100_300_1_cuda:0 188 282 2661
PACKED_TO_PADDED_32_100_300_16_cpu 7550 8131 67
PACKED_TO_PADDED_32_100_300_16_cuda:0 181 272 2770
PACKED_TO_PADDED_32_100_3000_1_cpu 4574 6327 110
PACKED_TO_PADDED_32_100_3000_1_cuda:0 173 254 2884
PACKED_TO_PADDED_32_100_3000_16_cpu 70366 72563 8
PACKED_TO_PADDED_32_100_3000_16_cuda:0 349 654 1433
PACKED_TO_PADDED_32_1000_300_1_cpu 612 728 818
PACKED_TO_PADDED_32_1000_300_1_cuda:0 189 295 2647
PACKED_TO_PADDED_32_1000_300_16_cpu 7699 8254 65
PACKED_TO_PADDED_32_1000_300_16_cuda:0 189 311 2646
PACKED_TO_PADDED_32_1000_3000_1_cpu 5105 5261 98
PACKED_TO_PADDED_32_1000_3000_1_cuda:0 191 260 2625
PACKED_TO_PADDED_32_1000_3000_16_cpu 87073 92708 6
PACKED_TO_PADDED_32_1000_3000_16_cuda:0 344 425 1455
--------------------------------------------------------------------------------
Benchmark Avg Time(μs) Peak Time(μs) Iterations
--------------------------------------------------------------------------------
PACKED_TO_PADDED_TORCH_2_100_300_1_cpu 492 627 1016
PACKED_TO_PADDED_TORCH_2_100_300_1_cuda:0 768 975 652
PACKED_TO_PADDED_TORCH_2_100_300_16_cpu 659 804 760
PACKED_TO_PADDED_TORCH_2_100_300_16_cuda:0 781 918 641
PACKED_TO_PADDED_TORCH_2_100_3000_1_cpu 624 734 802
PACKED_TO_PADDED_TORCH_2_100_3000_1_cuda:0 778 929 643
PACKED_TO_PADDED_TORCH_2_100_3000_16_cpu 2609 2850 192
PACKED_TO_PADDED_TORCH_2_100_3000_16_cuda:0 758 901 660
PACKED_TO_PADDED_TORCH_2_1000_300_1_cpu 467 612 1072
PACKED_TO_PADDED_TORCH_2_1000_300_1_cuda:0 772 905 648
PACKED_TO_PADDED_TORCH_2_1000_300_16_cpu 689 839 726
PACKED_TO_PADDED_TORCH_2_1000_300_16_cuda:0 789 1143 635
PACKED_TO_PADDED_TORCH_2_1000_3000_1_cpu 629 735 795
PACKED_TO_PADDED_TORCH_2_1000_3000_1_cuda:0 812 916 616
PACKED_TO_PADDED_TORCH_2_1000_3000_16_cpu 2716 3117 185
PACKED_TO_PADDED_TORCH_2_1000_3000_16_cuda:0 844 1288 593
PACKED_TO_PADDED_TORCH_10_100_300_1_cpu 2387 2557 210
PACKED_TO_PADDED_TORCH_10_100_300_1_cuda:0 4112 4993 122
PACKED_TO_PADDED_TORCH_10_100_300_16_cpu 3385 4254 148
PACKED_TO_PADDED_TORCH_10_100_300_16_cuda:0 3959 4902 127
PACKED_TO_PADDED_TORCH_10_100_3000_1_cpu 2918 3105 172
PACKED_TO_PADDED_TORCH_10_100_3000_1_cuda:0 4054 4450 124
PACKED_TO_PADDED_TORCH_10_100_3000_16_cpu 12748 13623 40
PACKED_TO_PADDED_TORCH_10_100_3000_16_cuda:0 4023 4395 125
PACKED_TO_PADDED_TORCH_10_1000_300_1_cpu 2258 2492 222
PACKED_TO_PADDED_TORCH_10_1000_300_1_cuda:0 3997 4312 126
PACKED_TO_PADDED_TORCH_10_1000_300_16_cpu 3404 3597 147
PACKED_TO_PADDED_TORCH_10_1000_300_16_cuda:0 3877 4227 129
PACKED_TO_PADDED_TORCH_10_1000_3000_1_cpu 2789 3054 180
PACKED_TO_PADDED_TORCH_10_1000_3000_1_cuda:0 3821 4402 131
PACKED_TO_PADDED_TORCH_10_1000_3000_16_cpu 11967 12963 42
PACKED_TO_PADDED_TORCH_10_1000_3000_16_cuda:0 3729 4290 135
PACKED_TO_PADDED_TORCH_32_100_300_1_cpu 6933 8152 73
PACKED_TO_PADDED_TORCH_32_100_300_1_cuda:0 11856 12287 43
PACKED_TO_PADDED_TORCH_32_100_300_16_cpu 9895 11205 51
PACKED_TO_PADDED_TORCH_32_100_300_16_cuda:0 12354 13596 41
PACKED_TO_PADDED_TORCH_32_100_3000_1_cpu 9516 10128 53
PACKED_TO_PADDED_TORCH_32_100_3000_1_cuda:0 12917 13597 39
PACKED_TO_PADDED_TORCH_32_100_3000_16_cpu 41209 43783 13
PACKED_TO_PADDED_TORCH_32_100_3000_16_cuda:0 12210 13288 41
PACKED_TO_PADDED_TORCH_32_1000_300_1_cpu 7179 7689 70
PACKED_TO_PADDED_TORCH_32_1000_300_1_cuda:0 11896 12381 43
PACKED_TO_PADDED_TORCH_32_1000_300_16_cpu 10127 15494 50
PACKED_TO_PADDED_TORCH_32_1000_300_16_cuda:0 12034 12817 42
PACKED_TO_PADDED_TORCH_32_1000_3000_1_cpu 8743 10251 58
PACKED_TO_PADDED_TORCH_32_1000_3000_1_cuda:0 12023 12908 42
PACKED_TO_PADDED_TORCH_32_1000_3000_16_cpu 39071 41777 13
PACKED_TO_PADDED_TORCH_32_1000_3000_16_cuda:0 11999 13690 42
--------------------------------------------------------------------------------
```
Reviewed By: bottler, nikhilaravi, jcjohnson
Differential Revision: D19870575
fbshipit-source-id: 23a2477b73373c411899633386c87ab034c3702a
2020-02-19 10:48:54 -08:00
Jeremy Reizenstein
bdc2bb578c
MACOSX_DEPLOYMENT_TARGET=10.14
...
Summary:
pybind now seems to need C++17 on a mac, so advise people to use it. (Also delete an unused variable to silence a warning I got on a mac build.)
Reported in github issue #68 .
Reviewed By: nikhilaravi
Differential Revision: D19970512
fbshipit-source-id: f9be20c8ed425bd6ba8d009a7d62dad658dccdb1
2020-02-19 08:43:50 -08:00
Nikhila Ravi
97acf16de2
lint fixes
...
Summary: Ran `dev/linter.sh`.
Reviewed By: bottler
Differential Revision: D19761062
fbshipit-source-id: 1a49abe4a5f2bc7641b2b46e254aa77e6a48aa7d
2020-02-13 20:50:48 -08:00
Georgia Gkioxari
29cd181a83
CPU implem for face areas normals
...
Summary:
Added cpu implementation for face areas normals. Moved test and bm to separate functions.
```
Benchmark Avg Time(μs) Peak Time(μs) Iterations
--------------------------------------------------------------------------------
FACE_AREAS_NORMALS_2_100_300_False 196 268 2550
FACE_AREAS_NORMALS_2_100_300_True 106 179 4733
FACE_AREAS_NORMALS_2_100_3000_False 1447 1630 346
FACE_AREAS_NORMALS_2_100_3000_True 107 178 4674
FACE_AREAS_NORMALS_2_1000_300_False 201 309 2486
FACE_AREAS_NORMALS_2_1000_300_True 107 186 4673
FACE_AREAS_NORMALS_2_1000_3000_False 1451 1636 345
FACE_AREAS_NORMALS_2_1000_3000_True 107 186 4655
FACE_AREAS_NORMALS_10_100_300_False 767 918 653
FACE_AREAS_NORMALS_10_100_300_True 106 167 4712
FACE_AREAS_NORMALS_10_100_3000_False 7036 7754 72
FACE_AREAS_NORMALS_10_100_3000_True 113 164 4445
FACE_AREAS_NORMALS_10_1000_300_False 748 947 669
FACE_AREAS_NORMALS_10_1000_300_True 108 169 4638
FACE_AREAS_NORMALS_10_1000_3000_False 7069 7783 71
FACE_AREAS_NORMALS_10_1000_3000_True 108 172 4646
FACE_AREAS_NORMALS_32_100_300_False 2286 2496 219
FACE_AREAS_NORMALS_32_100_300_True 108 180 4631
FACE_AREAS_NORMALS_32_100_3000_False 23184 24369 22
FACE_AREAS_NORMALS_32_100_3000_True 159 213 3147
FACE_AREAS_NORMALS_32_1000_300_False 2414 2645 208
FACE_AREAS_NORMALS_32_1000_300_True 112 197 4480
FACE_AREAS_NORMALS_32_1000_3000_False 21687 22964 24
FACE_AREAS_NORMALS_32_1000_3000_True 141 211 3540
--------------------------------------------------------------------------------
Benchmark Avg Time(μs) Peak Time(μs) Iterations
--------------------------------------------------------------------------------
FACE_AREAS_NORMALS_TORCH_2_100_300_False 5465 5782 92
FACE_AREAS_NORMALS_TORCH_2_100_300_True 1198 1351 418
FACE_AREAS_NORMALS_TORCH_2_100_3000_False 48228 48869 11
FACE_AREAS_NORMALS_TORCH_2_100_3000_True 1186 1304 422
FACE_AREAS_NORMALS_TORCH_2_1000_300_False 5556 6097 90
FACE_AREAS_NORMALS_TORCH_2_1000_300_True 1200 1328 417
FACE_AREAS_NORMALS_TORCH_2_1000_3000_False 48683 50016 11
FACE_AREAS_NORMALS_TORCH_2_1000_3000_True 1185 1306 422
FACE_AREAS_NORMALS_TORCH_10_100_300_False 24215 25097 21
FACE_AREAS_NORMALS_TORCH_10_100_300_True 1150 1314 435
FACE_AREAS_NORMALS_TORCH_10_100_3000_False 232605 234952 3
FACE_AREAS_NORMALS_TORCH_10_100_3000_True 1193 1314 420
FACE_AREAS_NORMALS_TORCH_10_1000_300_False 24912 25343 21
FACE_AREAS_NORMALS_TORCH_10_1000_300_True 1216 1330 412
FACE_AREAS_NORMALS_TORCH_10_1000_3000_False 239907 241253 3
FACE_AREAS_NORMALS_TORCH_10_1000_3000_True 1226 1333 408
FACE_AREAS_NORMALS_TORCH_32_100_300_False 73991 75776 7
FACE_AREAS_NORMALS_TORCH_32_100_300_True 1193 1339 420
FACE_AREAS_NORMALS_TORCH_32_100_3000_False 728932 728932 1
FACE_AREAS_NORMALS_TORCH_32_100_3000_True 1186 1359 422
FACE_AREAS_NORMALS_TORCH_32_1000_300_False 76385 79129 7
FACE_AREAS_NORMALS_TORCH_32_1000_300_True 1165 1310 430
FACE_AREAS_NORMALS_TORCH_32_1000_3000_False 753276 753276 1
FACE_AREAS_NORMALS_TORCH_32_1000_3000_True 1205 1340 415
--------------------------------------------------------------------------------
```
Reviewed By: bottler, jcjohnson
Differential Revision: D19864385
fbshipit-source-id: 3a87ae41a8e3ab5560febcb94961798f2e09dfb8
2020-02-13 11:42:48 -08:00
Nikhila Ravi
dcb094800f
ignore cuda for cpu only installation
...
Summary:
Added if `WITH_CUDA` checks for points/mesh rasterization. If installing on cpu only then this causes `Undefined symbol` errors when trying to import pytorch3d.
We had these checks for all the other cuda files but not the rasterization files.
Thanks ppwwyyxx for the tip!
Reviewed By: ppwwyyxx, gkioxari
Differential Revision: D19801495
fbshipit-source-id: 20e7adccfdb33ac731c00a89414b2beaf0a35529
2020-02-08 09:14:47 -08:00
Justin Johnson
e290f87ca9
Add CPU implementation for nearest neighbor
...
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
2020-02-03 10:06:10 -08:00
facebook-github-bot
dbf06b504b
Initial commit
...
fbshipit-source-id: ad58e416e3ceeca85fae0583308968d04e78fe0d
2020-01-23 11:53:46 -08:00