cloudcores / CuAssembler

An unofficial cuda assembler, for all generations of SASS, hopefully :)
MIT License
361 stars 66 forks source link

make dump issue #15

Open eric1hello opened 1 year ago

eric1hello commented 1 year ago

Hello, When I try cuassember followed your suggestion , I run 'make dump' but I met next issue , could you kindly help ? HNVCC_OP=dump hnvcc test_war.cu -arch=sm_60 -o test_war
HNVCC_OP is %s HNVCC_OP

Getting command list...

Creating keep dir hnvcc_keep_dir

Error when calling run(args) with args=['cicc', '--c++14', '--gnu_version=70500', '--orig_src_file_name', 'test_war.cu', '--allow_managed', '-arch', 'compute_60', '-m64', '-ftz=0', '-prec_div=1', '-prec_sqrt=1', '-fmad=1', '--include_file_name', 'test_war.fatbin.c', '-tused', '-nvvmir-library', '/usr/local/cuda-11.0/bin/../nvvm/libdevice/libdevice.10.bc', '--gen_module_id_file', '--module_id_file_name', 'hnvcc_keep_dir/test_war.module_id', '--gen_c_file_name', 'hnvcc_keep_dir/test_war.cudafe1.c', '--stub_file_name', 'hnvcc_keep_dir/test_war.cudafe1.stub.c', '--gen_device_file_name', 'hnvcc_keep_dir/test_war.cudafe1.gpu', 'hnvcc_keep_dir/test_war.cpp1.ii', '-o', 'hnvcc_keep_dir/test_war.ptx']! [Errno 2] No such file or directory: 'cicc'

cloudcores commented 1 year ago

Make sure 'cicc' can be found in your system path, usually /usr/local/cuda/nvvm/bin/ (depend on your cuda install path).

eric1hello commented 1 year ago

I have fixed it locally ,thx
res = 0,out_s.replace('cicc','/usr/local/cuda/nvvm/bin/cicc')

cloudcores commented 1 year ago

Replacing raw text in command is not safe, this may lead to problems when there are other occurences of string 'cicc'. It is recommended to add cicc path to system path, for example, add a line in your .bashrc:

export PATH=$PATH:/usr/local/cuda/nvvm/bin

eric1hello commented 1 year ago

Yea,I have tried it , thanks, it worked.

eric1hello commented 1 year ago

Hello, BTW,does cuassembler support mem.bar?


发件人: cloudcores @.> 发送时间: 2023年4月20日 19:33 收件人: cloudcores/CuAssembler @.> 抄送: Eric @.>; Author @.> 主题: Re: [cloudcores/CuAssembler] make dump issue (Issue #15)

Replacing raw text in command is not safe, this may lead to problems when there are other occurences of string 'cicc'. It is recommended to add cicc path to system path, for example, add a line in your .bashrc:

export PATH=$PATH:/usr/local/cuda/nvvm/bin

― Reply to this email directly, view it on GitHubhttps://github.com/cloudcores/CuAssembler/issues/15#issuecomment-1516173900, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A6MCSUFBLGIPTH2GGVNNDI3XCENIXANCNFSM6AAAAAAXDNR44Q. You are receiving this because you authored the thread.Message ID: @.***>

cloudcores commented 1 year ago

Certainly there are instructions not supported by cuasm. If not sure, you can check records in CuAsm/InsAsmRepos/DefaultInsAsmRepos.sm_60.txt (select your arch accordingly). For example, there are records like:

  "InsRecords" : [(0x000998, 0x000000ef98000000070000, "MEMBAR.CTA ;"),
(0x000cc8, 0x000000ef98000000070101, "MEMBAR.GL.IVALLD ;"),
(0x002bf8, 0x000000ef98000000070201, "MEMBAR.SYS.IVALLD ;"),
(0x003010, 0x000000ef98000000050100, "@P5 MEMBAR.GL ;"),
],

which means those instructions and their linear combinations can be supported directly.