/
usr
/
local
/
lib64
/
python3.6
/
site-packages
/
torch
/
include
/
torch
/
csrc
/
jit
/
tensorexpr
/
/usr/local/lib64/python3.6/site-packages/torch/include/torch/csrc/jit/tensorexpr
mkdir
upload
Name
Size
Mode
Actions
operators/
-
0755
rm
analysis.h
5888
0644
edit
dl
rm
block_codegen.h
4211
0644
edit
dl
rm
bounds_inference.h
2230
0644
edit
dl
rm
bounds_overlap.h
3329
0644
edit
dl
rm
codegen.h
6402
0644
edit
dl
rm
cpp_codegen.h
2278
0644
edit
dl
rm
cpp_intrinsics.h
719
0644
edit
dl
rm
cuda_codegen.h
7782
0644
edit
dl
rm
cuda_random.h
2642
0644
edit
dl
rm
dim_arg.h
884
0644
edit
dl
rm
eval.h
9639
0644
edit
dl
rm
exceptions.h
3253
0644
edit
dl
rm
expr.h
11588
0644
edit
dl
rm
external_functions.h
1274
0644
edit
dl
rm
external_functions_registry.h
2343
0644
edit
dl
rm
fwd_decls.h
2806
0644
edit
dl
rm
graph_opt.h
2553
0644
edit
dl
rm
half_support.h
5038
0644
edit
dl
rm
hash_provider.h
7930
0644
edit
dl
rm
intrinsic_symbols.h
420
0644
edit
dl
rm
ir.h
22622
0644
edit
dl
rm
ir_cloner.h
2069
0644
edit
dl
rm
ir_mutator.h
2010
0644
edit
dl
rm
ir_printer.h
3693
0644
edit
dl
rm
ir_simplifier.h
15090
0644
edit
dl
rm
ir_verifier.h
1240
0644
edit
dl
rm
ir_visitor.h
1825
0644
edit
dl
rm
kernel.h
9210
0644
edit
dl
rm
llvm_codegen.h
3180
0644
edit
dl
rm
llvm_jit.h
1965
0644
edit
dl
rm
loopnest.h
21599
0644
edit
dl
rm
mem_dependency_checker.h
13003
0644
edit
dl
rm
reduction.h
6742
0644
edit
dl
rm
registerizer.h
12498
0644
edit
dl
rm
stmt.h
21138
0644
edit
dl
rm
tensor.h
7640
0644
edit
dl
rm
tensorexpr_init.h
268
0644
edit
dl
rm
types.h
3880
0644
edit
dl
rm
unique_name_manager.h
940
0644
edit
dl
rm
var_substitutor.h
1753
0644
edit
dl
rm
Edit:
/usr/local/lib64/python3.6/site-packages/torch/include/torch/csrc/jit/tensorexpr/llvm_codegen.h
(3180B)
#pragma once #ifdef TORCH_ENABLE_LLVM #include <torch/csrc/WindowsTorchApiMacro.h> #include <torch/csrc/jit/tensorexpr/codegen.h> #include <torch/csrc/jit/tensorexpr/ir.h> #include <torch/csrc/jit/tensorexpr/ir_visitor.h> #include <c10/util/Optional.h> #include <unordered_map> #include <vector> namespace torch { namespace jit { namespace tensorexpr { class LLVMCodeGenImpl; class TORCH_API LLVMCodeGen : public CodeGen { public: explicit LLVMCodeGen( StmtPtr stmt, const std::vector<BufferArg>& args, at::Device device = at::kCPU, const std::string& kernel_func_name = "func", Dtype dtype = kInt, c10::optional<std::string> triple = c10::nullopt, c10::optional<std::string> cpu = c10::nullopt, c10::optional<std::string> attrs = c10::nullopt); explicit LLVMCodeGen(StmtPtr stmt); LLVMCodeGen() = delete; ~LLVMCodeGen() override; TORCH_API void call(const std::vector<CallArg>& args) override; TORCH_API void call_raw(const std::vector<void*>& args) override; at::Tensor empty_strided( c10::IntArrayRef size, c10::IntArrayRef stride, c10::optional<c10::ScalarType> dtype_opt, c10::optional<c10::Layout> layout_opt, c10::optional<c10::Device> device_opt, c10::optional<bool> pin_memory_opt) override; template <typename T> T value() { return value<T>(nullptr); } template <typename T> T value(std::vector<void*>& args) { return value<T>(args.data()); } template <typename T> T value(void** args) { T (*fp)(void**) = (T(*)(void**))getKernelAddress(impl_.get()); T rv = fp(args); return rv; } std::string getCodeText(const std::string& attr = "") override; private: void* getKernelAddress(LLVMCodeGenImpl* impl); std::unique_ptr<LLVMCodeGenImpl> impl_; }; struct TORCH_API LLVMCodeGenBuilder { using BufferArg = CodeGen::BufferArg; LLVMCodeGenBuilder(StmtPtr stmt, std::vector<BufferArg> args) : stmt_(stmt), args_(std::move(args)) {} LLVMCodeGenBuilder& device(at::Device device) { device_ = device; return *this; } LLVMCodeGenBuilder& kernelFuncName(std::string name) { kernelFuncName_ = std::move(name); return *this; } LLVMCodeGenBuilder& dtype(Dtype d) { dtype_ = d; return *this; } LLVMCodeGenBuilder& triple(std::string triple) { triple_ = std::move(triple); return *this; } LLVMCodeGenBuilder& cpu(std::string cpu) { cpu_ = std::move(cpu); return *this; } LLVMCodeGenBuilder& attrs(std::string attrs) { attrs_ = std::move(attrs); return *this; } std::unique_ptr<LLVMCodeGen> build() { return std::make_unique<LLVMCodeGen>( stmt_, args_, device_, kernelFuncName_, dtype_, triple_, cpu_, attrs_); } private: StmtPtr stmt_; std::vector<BufferArg> args_; at::Device device_ = at::kCPU; std::string kernelFuncName_ = "func"; Dtype dtype_ = kInt; c10::optional<std::string> triple_ = c10::nullopt; c10::optional<std::string> cpu_ = c10::nullopt; c10::optional<std::string> attrs_ = c10::nullopt; }; } // namespace tensorexpr } // namespace jit } // namespace torch #endif // TORCH_ENABLE_LLVM
Save
cmd:
run