Interpretation of compute capability bits in CUBIN ELF flags (e_flags)

20 views
Skip to first unread message

Dmitry N. Mikushin

unread,
Feb 22, 2013, 12:52:17 PM2/22/13
to asf...@googlegroups.com
Dear all,

Currently, AsFermi code has:

const unsigned int ELFFlagsForsm_20 = 0x00140114;
const unsigned int ELFFlagsForsm_21 = 0x00140115;
const unsigned int ELFFlagsForsm_30 = 0x001E011E;

I would like to share more detailed observation about CUBIN ELF flags
field contents. Specifically,

0x14 means CC 20
0x15 means CC 21
0x1e means CC 30
0x23 means CC 35

Pairs of leftmost and rightmost bytes in flags field denote virtual
and real CCs, respectively. Virtual compute capability XX is always
lower or equal than real compute capability YY, and denotes "to use
features specific to architecture XX on hardware YY". Examples:

0x14xx14 means compute_20 for sm_20 (nvcc -arch=compute_20 -gpu-code=sm_20)
0x14xx23 means compute_20 for sm_35 (nvcc -arch=compute_20 -gpu-code=sm_35)
0x1exx23 means compute_30 for sm_35 (nvcc -arch=compute_30 -gpu-code=sm_35)
and so forth.

Best regards,
- D.

Sun HuanHuan

unread,
Feb 23, 2013, 4:35:02 AM2/23/13
to asf...@googlegroups.com
Hi Dmitry,

Thank you for your detailed observation.

So I guess that 0x14 is 20 in decimal?
and I can guess 0x31 mean CC 49 (a future card)?

Good work and good guy!

Sun
--
Smalltalk is dangerous. It is a drug. My advice to you would be don't
try it; it could ruin your life.
Reply all
Reply to author
Forward
0 new messages