add minimum documentation
This commit is contained in:
		
							parent
							
								
									d7a85cd7fa
								
							
						
					
					
						commit
						2c8b1361a1
					
				
							
								
								
									
										66
									
								
								README.md
								
								
								
								
							
							
						
						
									
										66
									
								
								README.md
								
								
								
								
							|  | @ -1,2 +1,66 @@ | |||
| # ONNF | ||||
| Open Neural Network Frontend | ||||
| Open Neural Network Frontend : an ONNX frontend to MLIR. | ||||
| 
 | ||||
| [](https://circleci.com/gh/clang-ykt/ONNF) | ||||
| 
 | ||||
| ## Installation | ||||
| 
 | ||||
| We assume an existing installation of MLIR. The LLVM-Project repo commit hash we used to test against is 9b6ad8466bb8b97082b705270603ad7f4559e931 and the MLIR repo commit hash we used is 0710266d0f56cf6ab0f437badbd7416b6cecdf5f.  | ||||
| 
 | ||||
| Two environment variables need to be set: | ||||
| - LLVM_SRC should point to the llvm src directory (e.g., llvm-project/llvm). | ||||
| - LLVM_BUILD should point to the llvm build directory (e.g., llvm-project/build). | ||||
| 
 | ||||
| To build ONNF, use the following command: | ||||
| ``` | ||||
| git clone --recursive git@github.com:clang-ykt/ONNF.git | ||||
| mkdir build | ||||
| cd build | ||||
| cmake .. | ||||
| cmake --build . --target all | ||||
| ``` | ||||
| 
 | ||||
| After the above commands succeed, an `onnf` executable should appear in the `bin` directory.  | ||||
| 
 | ||||
| ## Using ONNF | ||||
| 
 | ||||
| The usage of `onnf` is as such: | ||||
| ``` | ||||
| OVERVIEW: ONNF MLIR modular optimizer driver | ||||
| 
 | ||||
| USAGE: onnf [options] <input file> | ||||
| 
 | ||||
| OPTIONS: | ||||
| 
 | ||||
| Generic Options: | ||||
| 
 | ||||
|   --help        - Display available options (--help-hidden for more) | ||||
|   --help-list   - Display list of available options (--help-list-hidden for more) | ||||
|   --version     - Display the version of this program | ||||
| 
 | ||||
| ONNF Options: | ||||
| These are frontend options. | ||||
| 
 | ||||
|   Choose target to emit: | ||||
|       --EmitONNXIR - Ingest ONNX and emit corresponding ONNX dialect. | ||||
|       --EmitMLIR   - Lower model to MLIR built-in transformation dialect. | ||||
|       --EmitLLVMIR - Lower model to LLVM IR (LLVM dialect). | ||||
|       --EmitLLVMBC - Lower model to LLVM IR and emit (to file) LLVM bitcode for model. | ||||
| ``` | ||||
| 
 | ||||
| ## Example | ||||
| 
 | ||||
| For example, to lower an ONNX model (e.g., add.onnx) to ONNX dialect, use the following command: | ||||
| ``` | ||||
| ./onnf --EmitONNXIR add.onnx | ||||
| ``` | ||||
| The output should look like: | ||||
| ``` | ||||
| module { | ||||
|   func @main_graph(%arg0: tensor<10x10x10xf32>, %arg1: tensor<10x10x10xf32>) -> tensor<10x10x10xf32> { | ||||
|     %0 = "onnx.Add"(%arg0, %arg1) : (tensor<10x10x10xf32>, tensor<10x10x10xf32>) -> tensor<10x10x10xf32> | ||||
|     return %0 : tensor<10x10x10xf32> | ||||
|   } | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue