I am loading a PTX file, in compute_13 arch and the following exception occurs:
-------
terminate called after throwing an instance of 'parser::PTXParser::Exception'
what(): compute_13_ori_b07c0d066af9b9c1~ (312, 5): Type of %rh1 u16 not
convertable to type s8 .
-------
The conversion in the code:
--------------------------
310 bra.uni $Lt_0_258;
311 $Lt_0_15618:
312 cvt.s32.s8 %r69, %rh1;
313 mov.s32 %r70, 0;
314 setp.ne.s32 %p20, %r69, %r70;
--------------------------
I do belive it is a Ocelot limitation, once in the nvidia's ptx_isa says that
the use of sub-words types are allowed for ld, st, and cvt instructions (as I
understood it, but mine English is quite rusty).
-----------
5.2.2. Restricted Use of Sub-Word Sizes
The .u8, .s8, and .b8 types are restricted to ld, st, and cvt instructions.
The .f16 floating-point type is allowed only in conversions to and from .f32
and .f64 types. All floating-point instructions operate only on .f32 and .f64
types.
-----------
So possible that is a Ocelot's bug.
There is something else, that ain't a error but always prints a warning, the
DFG main, in ocelot/analysis/test dosn't explicitly return a value, so eclipse
always warns about it.
Thx for your time
D. Sampaio
There is a fix for this in the PTX 2.1 branch of ocelot, but there are
other reasons (stability) why I wouldn't use this for a few more weeks
at least.
If you need this to work right now, you could go into
ocelot/ir/implementation/PTXOperand.cpp and check out the valid()
function, which is a single check that determines whether it is valid to
assign a value of one type to another type. Simply adding an entry for
u16->s8 should fix the problem (although that will indicate that it is
valid for all instructions not just those with relaxed type-checking, so
it might mask other errors).
Regards,
Greg
Could you verify that this is fixed in r564?
Thanks,
Greg
About the cvt instruction it ain't that important, I dit change it to
16 and it's enough for mine analysis.
Thx!
> --
> You received this message because you are subscribed to the Google Groups
> "gpuocelot" group.
> To post to this group, send email to gpuo...@googlegroups.com.
> To unsubscribe from this group, send email to
> gpuocelot+...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/gpuocelot?hl=en.
>
>
--
Atenciosamente
Diogo Nunes Sampaio