mirror of
https://github.com/zebrajr/pytorch.git
synced 2025-12-06 12:20:52 +01:00
Test Plan:
Move it outside the header so it's not seen by nvcc
```
$ buck2 build -c fbcode.platform=platform010 fbcode//accelerators/pytorch/lib/cuda:ngram_repeat_block_cuda
Downloading buck2...
[======================================================================]
watchman fresh instance event, clearing cache
Using disallowed linker flag 'arvr/third-party/toolchains/platform009/build/mesa/lib/libGL.so' in library rule 'fbsource//third-party/toolchains:opengl'
Using disallowed linker flag 'arvr/third-party/freeglut/3.0.0/libs/x64-linux/libglut.a' in library rule 'fbsource//third-party/toolchains:GLUT'
Action Failed for fbcode//accelerators/pytorch/lib/cuda:ngram_repeat_block_cuda (ovr_config//platform/linux:x86_64-fbcode-platform010-clang-6dbc4bb1b9a32829)#5:
cxx_compile ngram_repeat_block_cuda_kernel.cu (pic) failed with non-zero exit code 1
debug information: action_digest=b2bda91d24dad53e960c740ef9a412cee1902d86:94
stdout:
stderr:
fbcode/caffe2/torch/csrc/jit/frontend/tree_views.h: In instantiation of 'static torch::jit::Maybe<T> torch::jit::Maybe<T>::create(const torch::jit::SourceRange&, const T&) [with T = torch::jit::List<torch::jit::Property>]':
fbcode/caffe2/torch/csrc/jit/frontend/tree_views.h:505:117: required from here
fbcode/caffe2/torch/csrc/jit/frontend/tree_views.h:220:33: error: cannot convert 'const torch::jit::List<torch::jit::Property>' to 'torch::jit::TreeList&&' {aka 'c10::SmallVector<c10::intrusive_ptr<torch::jit::Tree>, 4>&&'}
220 | return Maybe<T>(Compound::create(TK_OPTION, range, {value}));
| ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
fbcode/caffe2/torch/csrc/jit/frontend/tree.h:144:1: note: initializing argument 3 of 'static torch::jit::TreeRef torch::jit::Compound::create(int, const torch::jit::SourceRange&, torch::jit::TreeList&&)'
143 | const SourceRange& range_,
| ~~~~~~~~~~~~~~~~~~~~~~~~
144 | TreeList&& trees_) {
| ^
fbcode/caffe2/torch/csrc/jit/frontend/tree_views.h: In instantiation of 'static torch::jit::Maybe<T> torch::jit::Maybe<T>::create(const torch::jit::SourceRange&, const T&) [with T = torch::jit::List<torch::jit::Assign>]':
fbcode/caffe2/torch/csrc/jit/frontend/tree_views.h:505:171: required from here
fbcode/caffe2/torch/csrc/jit/frontend/tree_views.h:220:33: error: cannot convert 'const torch::jit::List<torch::jit::Assign>' to 'torch::jit::TreeList&&' {aka 'c10::SmallVector<c10::intrusive_ptr<torch::jit::Tree>, 4>&&'}
220 | return Maybe<T>(Compound::create(TK_OPTION, range, {value}));
| ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
fbcode/caffe2/torch/csrc/jit/frontend/tree.h:144:1: note: initializing argument 3 of 'static torch::jit::TreeRef torch::jit::Compound::create(int, const torch::jit::SourceRange&, torch::jit::TreeList&&)'
143 | const SourceRange& range_,
| ~~~~~~~~~~~~~~~~~~~~~~~~
144 | TreeList&& trees_) {
| ^
cc1plus: note: unrecognized command-line option '-Wno-ignored-optimization-argument' may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option '-Wno-ambiguous-reversed-operator' may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option '-Wno-ignored-optimization-argument' may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option '-Wno-ambiguous-reversed-operator' may have been intended to silence earlier diagnostics
command: buck-out/v2/gen/fbcode/999b02f9444004c1/tools/build/__wrap_nvcc.py__/wrap_nvcc.py -_NVCC_BIN_ fbcode ...<omitted>... ors/pytorch/lib/cuda/__ngram_repeat_block_cuda__/__objects__/ngram_repeat_block_cuda_kernel.cu.pic.o (rerun with -v to view the untruncated command)
```
Reviewed By: zhxchen17
Differential Revision: D33592885
fbshipit-source-id: a36dcb3c8265d009b2287f0a479695d1ddbf85aa
58 lines
1.5 KiB
C++
58 lines
1.5 KiB
C++
#include <torch/csrc/jit/frontend/tree_views.h>
|
|
|
|
namespace torch {
|
|
namespace jit {
|
|
|
|
namespace {
|
|
void collectUnresolvedNames(
|
|
std::vector<std::string>& names,
|
|
const TreeView& node) {
|
|
if (node.kind() == TK_ASSIGN) {
|
|
for (const auto& expr : Assign{node.get()}.lhs_list()) {
|
|
collectUnresolvedNames(names, expr);
|
|
}
|
|
} else if (node.kind() == TK_TUPLE_LITERAL) {
|
|
for (const auto& expr : TupleLiteral{node.get()}.inputs()) {
|
|
collectUnresolvedNames(names, expr);
|
|
}
|
|
} else if (node.kind() == TK_LIST_LITERAL) {
|
|
for (const auto& expr : ListLiteral{node.get()}.inputs()) {
|
|
collectUnresolvedNames(names, expr);
|
|
}
|
|
} else if (node.kind() == TK_VAR) {
|
|
names.push_back(Var{node.get()}.name().name());
|
|
}
|
|
}
|
|
} // namespace
|
|
|
|
std::vector<std::string> getUnresolvedClassAttributes(const ClassDef& def) {
|
|
if (!def.assigns().present()) {
|
|
return {};
|
|
}
|
|
std::vector<std::string> ret;
|
|
for (const auto& assign : def.assigns().get()) {
|
|
collectUnresolvedNames(ret, assign);
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
/* static */ ClassDef ClassDef::create(
|
|
const SourceRange& range,
|
|
const Ident& name,
|
|
const Maybe<Expr>& superclass,
|
|
const List<Stmt>& body,
|
|
const List<Property>& properties,
|
|
const List<Assign>& assigns) {
|
|
return ClassDef(Compound::create(
|
|
TK_CLASS_DEF,
|
|
range,
|
|
{name,
|
|
superclass,
|
|
body,
|
|
Maybe<List<Property>>::create(range, properties),
|
|
Maybe<List<Assign>>::create(range, assigns)}));
|
|
}
|
|
|
|
} // namespace jit
|
|
} // namespace torch
|