NBAssembler

所属分类:GPU/显卡
开发工具:Python
文件大小:84KB
下载次数:0
上传日期:2023-02-23 07:49:19
上 传 者sh-1993
说明:  NVIDIA(Maxwell Pascal Volta Turing Ampere)GPU的汇编程序和分解程序。
(Assembler and Decompiler for NVIDIA (Maxwell Pascal Volta Turing Ampere) GPUs.)

文件列表:
LICENSE (1066, 2023-02-21)
PKGBUILD (438, 2023-02-21)
doc (0, 2023-02-21)
doc\Ampere.md (18649, 2023-02-21)
doc\CUDA_ASM.md (3831, 2023-02-21)
doc\Maxwell.md (12359, 2023-02-21)
doc\Turing.md (18134, 2023-02-21)
doc\Volta.md (14625, 2023-02-21)
global_run.s (3748, 2023-02-21)
nbas (0, 2023-02-21)
nbas\__init__.py (0, 2023-02-21)
nbas\__main__.py (14300, 2023-02-21)
nbas\cubin.py (28277, 2023-02-21)
nbas\elf.py (24282, 2023-02-21)
nbas\grammar.py (105303, 2023-02-21)
nbas\kernel.py (60884, 2023-02-21)
nbas\ptx.py (61661, 2023-02-21)
nbas\tool.py (25228, 2023-02-21)
nbasm (111, 2023-02-21)
setup.py (259, 2023-02-21)
test.py (803, 2023-02-21)
test_lat.py (1954, 2023-02-21)
test_lat.s (3016, 2023-02-21)

# NB Assembler Assembler and Decompiler for NVIDIA (Maxwell Pascal Volta Turing Ampere) GPUs. ## Requirements: * Python >= 3.8 * CUDA >= 6.5 (Only requires `nvdisasm` for disassembly or testing) ## Supported NVIDIA GPUs: Maxwell (SM50, SM52, SM53) Pascal (SM60, SM61, SM62) Volta (SM70, SM72) Turing (SM75) Ampere (SM80, SM86) ## Install ``` python setup.py install ``` ## Use ```bash # help nbasm -h # usage: nbasm [-h] [-V] {list,das,as,pre,pdas,test,det} ... # Assembler and Decompiler for NVIDIA (Maxwell Pascal Volta Turing Ampere) GPUs. # optional arguments: # -h, --help show this help message and exit # -V, --version Print version information on this tool. # subcommands: # {list,das,as,pre,pdas,test,det} # list list cubin info # das disassemble cubin # as assemble asm # dcc decompile asm to ptx # test test assembler by disassemble and then assemble # det detect machine code bits # examples nbasm list ethash.cubin nbasm das -k Search -o ethash_search.s ethash.cubin nbasm as -D DEBUG=True -o ethash.cubin ethash_search.s nbasm dcc -o ethash.ptx ethash.s ``` ## ASM Grammar ```assembly # 单行注释 # 反汇编出来的其它用不到的元信息将写入文件头的注释。汇编时忽略。 /* 多行注释 */ .compute_75 # virtual_arch .sm_75 # arch .global: NAME # 全局变量 .align 8 .zero 368 .byte 0xff, 0xff, 0xff, 0x7f .short 0x0412 .word 0x00000020 .quad 0x366803807ff7021f .constants: NAME # 用户自定义常量 .align 4 .zero 4 .constants2: NAME # 编译器生成的常量,一般由于代码中有指令编码存不下的立即数 .align 4 .zero 4 # 引用其它文件 # include汇编文件,直接在这个位置替换位汇编文件的内容 .include "source.s" # include Python源代码,将会先执行这个Python脚本,执行后,使用Python上向文中out_变量的内容在这个位置替换 .include "source.py" .constants: {python expression} # {}中间的内容(单行)为Python表达式,计算表达式结果并在这个位置替换 ... # {}中间内容(多行)则视为Python代码,执行Python代码后使用Python上向文中out_变量的内容在这个位置替换 { # 例如,条件include if define1: out += '.include "source1.s"\n' else: out += '.include "source2.s"\n' out = ''' ... ''' } .kernel: NAME # kernel定义与代码 # 普通寄存器别名映射,支持单个映射和批量映射(类似数组的用法) .reg NAME, Rxx # Uniform寄存器别名映射 .reg NAME, URxx-xx # Pred寄存器别名映射 .reg NAME, Pxx # Uniform Pred寄存器别名映射 .reg NAME, UPxx # Kernel参数 .param ordinal, NAME, SIZE_IN_BYTES # shared .shared SIZE_IN_BYTES .L_label: #标签 # 指令:/*地址*/ 控制码 pred 指令.标志... 操作数, ...; /* 指令编码 */ # reuse编码 /*1dd0*/ -:--:-:-:Y:8 @!P6 IMAD.SHL.U32 R2, R2, 0x2, RZ; /* 0x000fd000078e00ff000000020202e824 */ # ---- # 控制码: schedule_flag:Wait_barrier_mask:read_barrier_index:write_barrier_index:yield:stall # schedule_flag: 调度标志,仅供nbasm的调度器使用。默认自动调度。设置为'K'表示已经手工调好了这条指令的控制码,调度器忽略这条指令。 # Wait_barrier_mask: 等待read_barrier、write_barrier的位图 # read_barrier_index: 不定周期指令设置读后写依赖 # write_barrier_index: 不定周期指令设置写后读依赖 # yield: 让出,表示当前warp可以被换出。一般用于stall超过4个周期情况 # stall: 本条指令调度后,下一条指令延迟开始的周期数 ``` ## Related projects [AsFermi](https://github.com/hyqneuron/asfermi), an SASS assembler for NVIDIA Fermi GPUs. By Hou Yunqing. [KeplerAs](https://github.com/xiuxiazhang/KeplerAs), an SASS assembler for NVIDIA Kepler. By Xiuxia Zhang. [MaxAs](https://github.com/NervanaSystems/maxas), an SASS assembler for NVIDIA Maxwell and Pascal. By Scott Gray. [TuringAs](https://github.com/daadaada/turingas), an SASS assembler for NVIDIA Volta and Turing. By Da Yan. This project is released under the MIT License. -- Alvin Zhu

近期下载者

相关文件


收藏者