mirror of
https://github.com/saymrwulf/pytorch.git
synced 2026-05-15 21:00:47 +00:00
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/54439 For now the only way to represent conv2d in TE is via an external call, and since aten library doesn't have an out variant for conv2d, the external call has to perform an extra copy. Because of that fusing conv2d now regressed performance and hence is disabled. However, in near future we should have two alternative ways to enable it: 1) represent conv2d natively in TE (without an external call) 2) add an out variant for conv2d Test Plan: Imported from OSS Reviewed By: bertmaher Differential Revision: D27237045 Pulled By: ZolotukhinM fbshipit-source-id: f5545ff711b75f9f37bc056316d1999a70043b4c |
||
|---|---|---|
| .. | ||
| CMakeLists.txt | ||
| gtest_assert_float_eq.h | ||
| padded_buffer.cpp | ||
| padded_buffer.h | ||
| README.md | ||
| test_approx.cpp | ||
| test_aten.cpp | ||
| test_base.h | ||
| test_boundsinference.cpp | ||
| test_conv.cpp | ||
| test_cpp_codegen.cpp | ||
| test_cuda.cpp | ||
| test_expr.cpp | ||
| test_external_calls.cpp | ||
| test_ir_printer.cpp | ||
| test_ir_verifier.cpp | ||
| test_kernel.cpp | ||
| test_llvm.cpp | ||
| test_loopnest.cpp | ||
| test_memdependency.cpp | ||
| test_reductions.cpp | ||
| test_registerizer.cpp | ||
| test_simplify.cpp | ||
| test_te_fuser_pass.cpp | ||
| test_train.cpp | ||
| test_train.h | ||
| test_train_impl.cpp | ||
| test_type.cpp | ||
| test_utils.h | ||
| tutorial.cpp | ||
TensorExpr C++ Tests
How to add a new test
First, create a new test file. Test files should have be placed in this
directory, with a name that starts with test_, like test_foo.cpp.
Here is an example test file you can copy-paste.
#include <test/cpp/tensorexpr/test_base.h>
// Tests go in torch::jit
namespace torch {
namespace jit {
// 1. Test cases are void() functions.
// 2. They start with the prefix `test`
void testCaseOne() {
// ...
}
void testCaseTwo() {
// ...
}
}
}
Then, register your test in tests.h:
// Add to TH_FORALL_TESTS_CUDA instead for CUDA-requiring tests
#define TH_FORALL_TESTS(_) \
_(ADFormulas) \
_(Attributes) \
...
_(CaseOne) // note that the `test` prefix is omitted.
_(CaseTwo)
We glob all the test files together in CMakeLists.txt so that you don't
have to edit it every time you add a test. Unfortunately, this means that in
order to get the build to pick up your new test file, you need to re-run
cmake:
python setup.py build --cmake
How do I run the tests?
The following commands assume you are in PyTorch root.
# (re)build the test binary
ninja build/bin/test_tensorexpr
# run
build/bin/test_tensorexpr --gtest_filter='glob_style_filter*'