pytorch / glow
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 10% duplication:
    • 116,175 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 11,717 duplicated lines
  • 1,418 duplicates
system10% (11,717 lines)
Duplication per Extension
cpp10% (9,120 lines)
py21% (1,013 lines)
cl36% (871 lines)
h3% (573 lines)
cmake15% (140 lines)
Duplication per Component (primary)
lib/Backends16% (3,946 lines)
torch_glow/src9% (1,398 lines)
lib/LLVMIRCodeGen14% (1,270 lines)
lib/Importer12% (1,238 lines)
utils/scripts37% (949 lines)
lib/Graph8% (754 lines)
tools/ClassGen17% (689 lines)
include/glow2% (302 lines)
lib/Runtime11% (222 lines)
lib/Optimizer2% (185 lines)
lib/Exporter8% (153 lines)
cmake/modules15% (140 lines)
lib/Partitioner6% (126 lines)
lib/Onnxifi5% (82 lines)
lib/Quantization3% (48 lines)
lib/IR3% (44 lines)
torch_glow/utils11% (40 lines)
lib/Backend6% (38 lines)
lib/Support5% (29 lines)
utils1% (24 lines)
lib/Converter4% (16 lines)
tools/loader<1% (12 lines)
lib/PassManager6% (12 lines)
tools/Debugger0% (0 lines)
tools/png2bin0% (0 lines)
tools/IncludeBin0% (0 lines)
inference_engines/x-inference-engines0% (0 lines)
lib/Flags0% (0 lines)
lib/CodeGen0% (0 lines)
lib/ExecutionEngine0% (0 lines)
lib/ExecutionContext0% (0 lines)
lib/Base0% (0 lines)
torch_glow0% (0 lines)
torch_glow/torch_glow0% (0 lines)

Duplication Between Components (50+ lines)

G lib/Backends lib/Backends lib/LLVMIRCodeGen lib/LLVMIRCodeGen lib/Backends--lib/LLVMIRCodeGen 1070 lib/Graph lib/Graph lib/Backends--lib/Graph 86 tools/ClassGen tools/ClassGen lib/Backends--tools/ClassGen 69 lib/Onnxifi lib/Onnxifi torch_glow/src torch_glow/src lib/Onnxifi--torch_glow/src 116 lib/Exporter lib/Exporter lib/Importer lib/Importer lib/Exporter--lib/Importer 62

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 1,418 duplicates...
Size#FoldersFilesLinesCode
131 x 2 lib/Backends/Interpreter
lib/LLVMIRCodeGen/libjit
InterpreterNodes.cpp
libjit.cpp
7457:7642 (2%)
3997:4182 (4%)
view
99 x 2 lib/Backends/Interpreter
lib/LLVMIRCodeGen/libjit
InterpreterNodes.cpp
libjit.cpp
7294:7449 (1%)
3834:3989 (3%)
view
71 x 2 lib/Backends/OpenCL
lib/Backends/OpenCL
cl
kernels_fwd_conv.cl
kernels_fwd_quantized_conv.cl
55:127 (21%)
53:125 (20%)
view
57 x 2 lib/Backends/OpenCL
lib/Backends/OpenCL
cl
kernels_fwd_conv.cl
kernels_fwd_quantized_conv.cl
189:245 (17%)
193:249 (16%)
view
46 x 2 lib/Backends/OpenCL
lib/Backends/OpenCL
cl
kernels_fwd_conv.cl
kernels_fwd_quantized_conv.cl
279:325 (13%)
284:331 (13%)
view
42 x 2 utils/scripts
utils/scripts
gen_onnx_gru_model.py
gen_onnx_rnn_model.py
296:351 (12%)
266:321 (14%)
view
34 x 2 tools/ClassGen
tools/ClassGen
InstrBuilder.cpp
NodeBuilder.cpp
522:556 (10%)
21:55 (6%)
view
32 x 2 lib/Backends/Interpreter
lib/Backends/Interpreter
InterpreterNodes.cpp
InterpreterNodes.cpp
1157:1189 (<1%)
1259:1293 (<1%)
view
29 x 2 lib/Backends/Interpreter
lib/LLVMIRCodeGen
InterpreterFunction.cpp
LLVMCompiledFunction.cpp
92:121 (18%)
174:203 (23%)
view
27 x 2 lib/Runtime/HostManager
lib/Runtime/HostManager
HostManager.cpp
HostManager.cpp
282:321 (3%)
633:672 (3%)
view
26 x 2 utils/scripts
utils/scripts
gen_onnx_gru_model.py
gen_onnx_lstm_model.py
296:327 (7%)
399:430 (5%)
view
26 x 2 utils/scripts
utils/scripts
gen_onnx_lstm_model.py
gen_onnx_rnn_model.py
399:430 (5%)
266:297 (8%)
view
25 x 2 lib/Backends/Interpreter
lib/LLVMIRCodeGen
Interpreter.cpp
LLVMBackend.cpp
809:835 (2%)
530:556 (4%)
view
25 x 2 lib/Backends/NNPI
lib/Backends/NNPI
Importer.cpp
Importer.cpp
2237:2266 (1%)
2311:2340 (1%)
view
23 x 2 lib/Backends/OpenCL
lib/Backends/OpenCL
cl
kernels_fwd_conv.cl
kernels_fwd_quantized_conv.cl
24:46 (6%)
19:41 (6%)
view
23 x 2 lib/Backends/Interpreter
lib/LLVMIRCodeGen
Interpreter.cpp
LLVMBackend.cpp
338:360 (2%)
280:302 (3%)
view
23 x 2 lib/Backends/Interpreter
lib/Backends/Interpreter
InterpreterNodes.cpp
InterpreterNodes.cpp
3748:3772 (<1%)
4273:4297 (<1%)
view
23 x 2 lib/Backends/NNPI
lib/Backends/NNPI
FXNNPICompiledFunction.cpp
NNPICompiledFunction.cpp
107:134 (19%)
404:431 (4%)
view
22 x 2 lib/Onnxifi
torch_glow/src
HostManagerOnnxifi.cpp
CachingGraphRunner.cpp
246:267 (6%)
116:138 (2%)
view
22 x 2 lib/Importer
lib/Importer
Caffe2ModelLoader.cpp
Caffe2ModelLoader.cpp
2684:2711 (1%)
2866:2891 (1%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 39 unit duplicates...
Size#FoldersFilesLinesCode
144 x 2 lib/Backends/Interpreter
lib/LLVMIRCodeGen/libjit
InterpreterNodes.cpp
libjit.cpp
7456:7644 
3996:4184 
view
43 x 2 lib/Backends/Interpreter
lib/LLVMIRCodeGen/libjit
InterpreterNodes.cpp
libjit.cpp
7400:7454 
3940:3994 
view
27 x 2 lib/Backends/Interpreter
lib/Backends/Interpreter
InterpreterNodes.cpp
InterpreterNodes.cpp
3747:3775 
4272:4300 
view
24 x 2 lib/Backends/Interpreter
lib/LLVMIRCodeGen/libjit
InterpreterNodes.cpp
libjit.cpp
7294:7324 
3834:3864 
view
23 x 2 lib/Backends/Interpreter
lib/Backends/CPU
InterpreterDeviceManager.cpp
CPUDeviceManager.cpp
171:202 
146:177 
view
17 x 2 torch_glow/src
torch_glow/src
PyTorchModelLoader.cpp
PyTorchModelLoader.cpp
3676:3697 
3699:3720 
view
16 x 2 lib/Backends/Interpreter
lib/Backends/CPU
InterpreterDeviceManager.cpp
CPUDeviceManager.cpp
151:169 
125:144 
view
16 x 2 lib/Exporter
lib/Exporter
ONNXModelWriter.cpp
ONNXModelWriter.cpp
1829:1849 
1851:1871 
view
14 x 2 lib/Graph
lib/Graph
Nodes.cpp
Nodes.cpp
1580:1595 
1597:1612 
view
13 x 2 lib/Importer
lib/Exporter
ONNXModelLoader.cpp
ONNXModelWriter.cpp
1111:1127 
2799:2815 
view
13 x 2 lib/Backends/Interpreter
lib/LLVMIRCodeGen/libjit
InterpreterNodes.cpp
libjit.cpp
7373:7398 
3913:3938 
view
12 x 2 lib/Backends/Interpreter
lib/LLVMIRCodeGen/libjit
InterpreterNodes.cpp
libjit.cpp
7356:7368 
3896:3908 
view
12 x 2 lib/Backends/CPU/libjit_cpu
lib/LLVMIRCodeGen/libjit
libjit_cpu_conv.cpp
libjit_conv.cpp
30:45 
30:45 
view
12 x 2 lib/Exporter
lib/Exporter
ONNXModelWriter.cpp
ONNXModelWriter.cpp
1593:1609 
1647:1663 
view
12 x 2 torch_glow/src
torch_glow/src
PyTorchModelLoader.cpp
PyTorchModelLoader.cpp
3554:3568 
3777:3791 
view
11 x 2 include/glow/PassManager
lib/Support
PassConfigUtils.h
Support.cpp
65:79 
246:260 
view
11 x 2 lib/Graph
lib/Graph
Graph.cpp
Graph.cpp
6110:6121 
6123:6134 
view
11 x 2 lib/Graph
lib/Graph
Graph.cpp
Graph.cpp
6136:6147 
6149:6160 
view
10 x 2 lib/Importer
lib/Importer
ONNXModelLoader.cpp
ONNXModelLoader.cpp
4172:4183 
4185:4196 
view
10 x 2 lib/Graph
lib/Graph
Nodes.cpp
Nodes.cpp
2045:2059 
2061:2075 
view