From 04a411fe2272a21c687766d7ff94431b93bb090b Mon Sep 17 00:00:00 2001 From: Andrzej Janik Date: Sat, 18 Sep 2021 20:22:47 +0000 Subject: [PATCH] Have an implementation for vprintf --- README.md | 4 ++-- ptx/lib/zluda_ptx_impl.bc | Bin 33884 -> 34052 bytes ptx/lib/zluda_ptx_impl.cl | 7 +++++++ ptx/src/translate.rs | 6 ++++-- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 953c7c7..42d0b92 100644 --- a/README.md +++ b/README.md @@ -76,8 +76,8 @@ You should install most recent run-time an developer driver packages as outlined If you are building on Linux you must also symlink (or rename) the ZLUDA output binaries after ZLUDA build finishes: ``` ln -s libnvcuda.so target/release/libcuda.so -ln -s libcuda.so target/release/libcuda.so.1 -ln -s libnvidia-ml.so target/release/libnvml.so +ln -s libnvcuda.so target/release/libcuda.so.1 +ln -s libnvml.so target/release/libnvidia-ml.so ``` ## Contributing diff --git a/ptx/lib/zluda_ptx_impl.bc b/ptx/lib/zluda_ptx_impl.bc index e2f956d0976bca4d2113a9f5fffe1a46f8e6f3cf..2d194c40c4406fc81c0a2b832e37afad1928fce4 100644 GIT binary patch delta 3442 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 delta 3261 zcmdUxe^6A{701urU6uuR;lVEO_J^?i5Edi&SoT+l#zhzl%2+^>Y!XK|i7EI4tBq|p zHg)&jP}~9$=p(X`B-+%82w?&&ZFWi~y1FJtGLbkm*(qraopfTtwARWrL~ZH3xBD=5 z+?oE9%;f#?J?DMSx%a+z=HB;COPlCpuc#{z4R$ZviSFy})}!Oyqc4;xa>h^{(au}| zfGR6hE1^2~Z-S>JI0ft?HInEm;aMkzJZ8xAh;BH=<^SgH;kBUj zxQKXUmp}#8G=PFFl4hrq>ou}t3Ai-dn=iT4;ygmtDkUdH{wC?C3b**ISPv=?E-SP) zyz;}^{UA9l64)ow(_I(-rC6Wr0f)fgW1#C#o+^LZ4$LCk4f2z>E+1Q^2YQil6B=Dj zJ3#_s0dfU7g-%0;> z?QQ=&{~^dgDkPp(c(VWSNallCfF=b70i+)(Kh|Fr2ljLsuv^md(cAuCq`fa*)_+bW z8cxrZ!J{2|Xf7cTI42X)Z=REp!Vo9txm)%rb%lRiJ*AKuo{OshFZ+DK4#ABxEV@6w z?f&()`#|Ah!nxb7dHEv!e{$m^3rpGjg6+b}-{pt++Ux(;v<1^@$ncr{r# z(!=WoasEDDr+AIYS96)F`}urcr+783;Ybg!bG$a# zIdWH?PAj6D?=d|b2`*g-*r}B~-*5wLNy|-PobR%9s=WGIr?m*r9K4 ztx)V5hGN$+6uX9@*fk8rey>pM8ir!mFciCn-^^Ov{#?uNTVCgQZK&YL7_X{I&fmxD z6t8#X8F%bw3BR9%-rx*-;rnaQ44YUxWNP~Qju$e@ueIpu7m-e)1^y)5!H;8hwsxg5 zPDPxP@!{%i;88@fa@k;AM%gt6_}_<80>u{DuQIsUE9>UUeRx^6yc!JUK|I;+iSd8zB6I6H##_fr7+l@pqF=j z68C$M_xOm>N!W+$A43LqyuLX1&gaGSd#O~ev_(mr!_vo@$i%FC)4B)l^2Bq8DVti~ zD>~g&g!_%Q;<&dYjk@Vd%3T7#E= zrV1Dxc*W7Q@aUts_@lIW<5tXcrqli%*!WJmt#mgwEu=gAPh-m)8LrZwW82jXpWlni zPSAnU4!r6z9rkzP`+L>%?$SPNzo@3iUdC$=YHX$fTsf|Bn1=AWS&hpSz*T)(pJ^Pg zpU?(OZ{eDo+OX+eym3%BZ+Z{cPU~p%MO@#$)Mox8ZWv$cF#icZIJ?wkzJeWnnLhI@ zeq)-tkhJlA1eO@1<)>#|l6S6`mb zx`FJU$O~9El4ow_g{=>h1B1)vt(%DlO)sNqW-B46J>Nz%J4g!}&v(#FGjX?~*?bqx zxQG|^75Hf8XQT~H6a;AI0O>%V7ldiXO%9>23g&6XOS(|EfmYkw2#W>`4mGrs!{{x8 zOU)c2KJ;p#Pffi@j-VTb=haj{c?lg|9@$$@$^p_O0IA}h{we_AdeNW`zzD!LK9p86 zz%|=cB=@=wAO!#8f*0f5HQ*n5XgbNwwWR}E;M-HKUzV)^IHLu={}rsjKa6t0 z3jB*G7p%bl6Xk*xc&ZM7J29y`SkF5`U_~?_Sb?vLa={ARsRK|0L@Zm^xF(M4B?j4{ i#teCNJYOsGegI&v{Zzvi?@I7rZ#<~=v(N5D2>uJNVR0@1 diff --git a/ptx/lib/zluda_ptx_impl.cl b/ptx/lib/zluda_ptx_impl.cl index 0870fb5..86bb593 100644 --- a/ptx/lib/zluda_ptx_impl.cl +++ b/ptx/lib/zluda_ptx_impl.cl @@ -335,3 +335,10 @@ void FUNC(__assertfail)( __attribute__((unused)) __private ulong* charSize ) { } + +uint FUNC(vprintf)( + __attribute__((unused)) __generic void* format, + __attribute__((unused)) __generic void* valist +) { + return 0; +} diff --git a/ptx/src/translate.rs b/ptx/src/translate.rs index 66fae15..297588a 100644 --- a/ptx/src/translate.rs +++ b/ptx/src/translate.rs @@ -1163,9 +1163,11 @@ fn translate_function<'input, 'a>( ) -> Result>, TranslateError> { let import_as = match &f.func_directive { ast::MethodDeclaration { - name: ast::MethodName::Func("__assertfail"), + name: ast::MethodName::Func(func_name), .. - } => Some("__zluda_ptx_impl____assertfail".to_owned()), + } if *func_name == "__assertfail" || *func_name == "vprintf" => { + Some([ZLUDA_PTX_PREFIX, func_name].concat()) + } _ => None, }; let (str_resolver, fn_resolver, fn_decl) = id_defs.start_fn(&f.func_directive)?;