jhuber6 wrote:

> > > > I thought the new driver just got some entropy from the current source 
> > > > file's `inode` entry? I'm not opposed, since I guess it would make 
> > > > sense to give the user a way to override it.
> > > 
> > > 
> > > Sorry I did not quite get your question. Do you suggest that we need some 
> > > option to override the CUID behavior? Currently clang already has options 
> > > to disable it or set it to a fixed value.
> > 
> > 
> > I just mean that we do 'handle' static variables currently in the new 
> > driver without `CUID`, it just makes a random string based off the file's 
> > `inode` value. The CUID would then be relevant here if the user needed to 
> > override that for some reason. (Maybe some utterly bizarre parallel 
> > compilation on a remote server or compiling the same file twice with a 
> > different macro set?)
> 
> Some HIP apps (e.g. rccl) compiles the same file with different options to 
> generate different object files. inode itself is not sufficient to identify a 
> TU. A combination of file ID with compile options is needed to identify a TU. 
> For CUDA/HIP, currently static device var needs to be externalized with a 
> postfix of CUID to be able to be accessed in host code. This mechanism 
> requires CUID to be set.
> 
> I would suggest we use the same mechanism to support static device variable 
> in the old and new driver.

Yeah, that's fine, but we should just default to the inode method if the 
argument isn't present I think. That way it works without needing this extra 
argument passed to both the compile phases.

https://github.com/llvm/llvm-project/pull/122859
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to