-
Notifications
You must be signed in to change notification settings - Fork 2
yk-fujii/nvfc
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
# # NVFC - NVidia microcontroller Firmware Compiler # # README # # Copyright (C) 2012 Yusuke Fujii <yukke@ubi.cs.ritsumei.ac.jp> # Copyright (C) 2011-2012 Shinpei Kato # # # The following instruction will tell you how to install Farm. Some of the installation stages may require you to install additional tools and packages. $(TOPDIR) will represent your top working directory, henceforth. 1. Download cd $(TOPDIR) git clone git://0x04.net/envytools.git git clone git://github.com/yukke0826/nvfc.git git clone git://github.com/shinpei0208/gdev.git 2. envytools envytools is a rich set of open-source tools to compile or decompile NVIDIA GPU program code, firmware code, macro code, and so on. It is also used to generate C header files with GPU command definitions. In addition, envytools document the NVIDIA GPU architecture details, while are not disclosed to the public so far. If you are interested in GPU system software development, this is what you should read! Please follow the instruction below to install envytools. cd $(TOPDIR)/envytools mkdir build cd build cmake .. # may require some packages on your distro make sudo make install # will install tools to /usr/local/{bin,lib} 3. NVFC install cd $(TOPDIR)/nvfc/compiler mkdir build cd build ../llvm/configure # if can't finished configure, add option. make sudo make install # will install tools. clang & llc 4. Compile test cd $(TOPDIR)/nvfc/test/test_br make sudo make run 5. Firmware compile & install & test 5.1 Firmware compile cd $(TOPDIR)/gdev/fw/ make make h # nvc0_ctxctl.h will be copied 5.2. Gdev install Gdev is a runtime-unified operating system module that manages GPUs as first-class computing resources. For more information, please see the following URL. https://github.com/shinpei0208/gdev if you use the we developed firmware, you can use the pscnv. 5.2.1 pscnv driver edit cd $(TOPDIR)/gdev/mod/pscnv $(editor) nvc0_graph.c Please describe the top of the "nvc0_graph.c" file the following statement. #define USE_BLOB_UCODE 5.2.2. pscnv install cd $(TOPDIR)/gdev/mod/pscnv ./configure make sudo make modules_install sudo shutdown -r now # will reboot You must change kernel setting to use the pscnv for GPU device driver. This pscnv included the compiled firmware. 5.2.3 Gdev Module cd $(TOPDIR)/gdev/mod mkdir build cd build ../configure make sudo insmod gdev.ko 5.2.4 Gdev Library cd $(TOPDIR)/gdev/lib mkdir build cd build ../configure make sudo make install export LD_LIBRARY_PATH="/usr/local/gdev/lib64:$LD_LIBRARY_PATH" export PATH="/usr/local/gdev/bin:$PATH" 5.2.5 CUDA Driver API cd $(TOPDIR)/gdev/cuda mkdir build cd build ../configure make sudo make install Gdev also supports CUDA in the operating system. You are required to install "kcuda" module to use this functionality. cd $(TOPDIR)/gdev/cuda mkdir kbuild ../configure --target=kcuda make sudo make install 5.3 Runs test cd $(TOPDIR)/gdev/test/cuda/user/madd make ./user_test 256 File extension - *.c *.h : c source code - *.bc : LLVM IR - *.s : Target Code(tmp) - *.tmp : Target Code after llvm2envyas - *.S : Target Code (*.tmp + boot.S) - *.bin : Execution File - *_ctxctl.h : data header file - nvc0_ctxctl.h : Firmware code header file (by device driver)
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published