<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On 25 Aug 2015, at 17:43, Alex Breslow <<a href="mailto:abreslow@cs.ucsd.edu" class="">abreslow@cs.ucsd.edu</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Hi Jeroen,<div class="">Correct me if I am mistaken (there is a good chance of that :) ), but I think the issue here is that ptx32 and ptx23 appear to refer to completely different things.  ptx32 is the 32-bit version of the PTX assembly, and ptx23 appears to refer to the version of the PTX assembly from a feature point of view (see <a href="http://llvm.org/devmtg/2011-11/Holewinski_PTXBackend.pdf" class="">http://llvm.org/devmtg/2011-11/Holewinski_PTXBackend.pdf</a> slide 9/37).</div></div></div></blockquote><div><br class=""></div><div>No in the current backed ptx32 is an attribute like ptx23, that’s what the table I referred you to shows you. The architectures are called nvptx32 and nvptx64 nowadays (not ptx32 and ptx64).</div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="">I'm a bit perplexed by all of this given that it appears that clang used to be able to compile OpenCL to ptx23.  For instance, I found some old slides by Justin Holewinski showing how one used to be able to compile to ptx23 circa 2011 (<a href="http://llvm.org/devmtg/2011-11/Holewinski_PTXBackend.pdf" class="">http://llvm.org/devmtg/2011-11/Holewinski_PTXBackend.pdf</a>).  Below is an example from slide 10/37:</div><div class=""> <b class=""><i class="">clang -ccc-host-triple ptx32 -Xclang -target-feature -Xclang +ptx23 -Xclang -target-feature -Xclang +sm20 -I$LIBCLC/include/generic -I$LIBCLC/include/ptx  -include clc/clc.h -Dcl_clang_storage_class_specifiers -O3 SOURCE.cl -S</i></b></div></div></div></blockquote><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="">I tried generating the code this way, but it doesn't work for me.  Is this syntax out of date?  Are the slides referring to something else?  If not, what would be the equivalent for llvm 3.4?</div></div></div></blockquote><div><br class=""></div><div>The slides are about the backend (ptx) that was there around the time the slides were written, and that backend has been completely replaced by a new one (nvptx). I don’t think the nvptx backend (which I was referring to) ever supported ptx23 as an attribute. I don’t know about the old ptx backend; I never used that.</div><div><br class=""></div><div>Jeroen</div><div class=""><br class=""></div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class=""><br class=""></div><div class="">-Alex</div><div class=""><b class=""><i class=""><br class=""></i></b></div><div class=""><b class=""><i class=""><br class=""></i></b></div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Mon, Aug 24, 2015 at 3:39 PM, Jeroen Ketema <span dir="ltr" class=""><<a href="mailto:j.ketema@imperial.ac.uk" target="_blank" class="">j.ketema@imperial.ac.uk</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><div class=""><br class=""></div><div class="">Hi Alex,</div><div class=""><br class=""></div><div class="">I think this question might be more appropriate for the cfe-dev list, but to answer your question: looking at lib/Target/NVPTX/NVPTX.td and its history, it seems that the llvm NVPTX backend at present (llvm trunk) only supports ptx32 and up, and never supported anything below ptx30.</div><div class=""><br class=""></div><div class="">Jeroen</div><br class=""><div class=""><blockquote type="cite" class=""><div class=""><div class="h5"><div class="">On 24 Aug 2015, at 23:24, Alex Breslow via Libclc-dev <<a href="mailto:libclc-dev@lists.llvm.org" target="_blank" class="">libclc-dev@lists.llvm.org</a>> wrote:</div><br class=""></div></div><div class=""><div class=""><div class="h5"><div dir="ltr" class="">Hi there,<div class=""><br class=""></div><div class="">I'm using clang to compile OpenCL kernels to PTX so that they can be run on an architectural simulator.  The simulator is only compatible with ptx23 not ptx30 or ptx31.</div><div class=""><br class=""></div><div class="">I'm compiling the kernels as follows:</div><div class=""><i class=""><b class="">SRC=VectorAdd.cl</b></i></div><div class=""><i class=""><b class="">DEST=VectorAdd.ptx</b></i></div><div class=""><i class=""><b class=""><br class=""></b></i></div><div class=""><i class=""><b class="">clang -Dcl_clang_storage_class_specifiers -isystem libclc/generic/include -include clc/clc.h -target nvptx-unknown-nvcl -xcl $SRC -emit-llvm -S -o $DEST.ll<br class=""></b></i></div><div class=""><i class=""><b class=""><br class=""></b></i></div><div class=""><i class=""><b class="">opt -S -O3 -loop-unroll $DEST.ll -o $DEST.opt.ll</b></i></div><div class=""><i class=""><b class=""><br class=""></b></i></div><div class=""><i class=""><b class="">llc -mcpu=sm_20 -mattr=+ptx30 $DEST.opt.ll -o $DEST"</b></i></div><div class=""><i class=""><b class=""><br class=""></b></i></div><div class="">The following code works to compile the kernel to ptx30, but when I attempt to change -mattr=+ptx30 to -mattr=+ptx23, I get the following warning:</div><div class=""><br class=""></div><div class=""><div class=""><i class=""><b class="">'+ptx23' is not a recognized feature for this target (ignoring feature)</b></i></div><div class=""><i class=""><b class="">'+ptx23' is not a recognized feature for this target (ignoring feature)</b></i></div></div><div class=""><i class=""><b class=""><br class=""></b></i></div><div class="">Is there a way to around this warning so that ptx23 code is generated?</div><div class=""><br class=""></div><div class="">I am using the Ubuntu 14.04 aptitude packages for libclc-dev, libclc-ptx, clang, and llvm.</div><div class="">Ubuntu clang version 3.4-1ubuntu3 (tags/RELEASE_34/final) (based on LLVM 3.4)</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Thanks again for your time and let me know if you need further information.</div><div class=""><br class=""></div><div class="">Regards,</div><div class="">Alex</div><div class=""><div class=""><br class=""></div>-- <br class=""><div class=""><div dir="ltr" class="">Alex Breslow<div class=""><br class=""></div></div></div>
</div></div></div></div>
_______________________________________________<br class="">Libclc-dev mailing list<br class=""><a href="mailto:Libclc-dev@lists.llvm.org" target="_blank" class="">Libclc-dev@lists.llvm.org</a><br class=""><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/libclc-dev" target="_blank" class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/libclc-dev</a><br class=""></div></blockquote></div><br class=""></div></blockquote></div><br class=""><br clear="all" class=""><div class=""><br class=""></div>-- <br class=""><div class="gmail_signature"><div dir="ltr" class="">Alex Breslow<div class="">PhD student in computer science at UC San Diego<br class=""><div class="">Email: <a href="mailto:abreslow@cs.ucsd.edu" target="_blank" class="">abreslow@cs.ucsd.edu</a></div><div class="">Website: <a href="http://cseweb.ucsd.edu/~abreslow" target="_blank" class="">cseweb.ucsd.edu/~abreslow</a></div></div></div></div>
</div>
</div></blockquote></div><br class=""></body></html>