Guest User

Untitled

a guest
Apr 24th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. void LLVMDynamicExecutive::CooperativeThreadArray::initializeContext(
  2. LLVMContext &context,
  3. int threadId,
  4. const LLVMDynamicKernel &kernel,
  5. const ir::Dim3 &ctaId,
  6. int localMemorySize) {
  7.  
  8. context.nctaid.x = kernel.gridDim().x;
  9. context.nctaid.y = kernel.gridDim().y;
  10. context.nctaid.z = kernel.gridDim().z;
  11. context.ctaid.x = ctaId.x;
  12. context.ctaid.y = ctaId.y;
  13. context.ctaid.z = ctaId.z;
  14. context.ntid.x = kernel.blockDim().x;
  15. context.ntid.y = kernel.blockDim().y;
  16. context.ntid.z = kernel.blockDim().z;
  17. context.tid.x = threadId % context.ntid.x;
  18. context.tid.y = (threadId / context.ntid.x) % context.ntid.y;
  19. context.tid.z = threadId / (context.ntid.x * context.ntid.y);
  20. context.shared = reinterpret_cast<char*>(&shared[0]);
  21. context.argument = kernel.argumentMemory();
  22. context.local = &local[threadId * localMemorySize];
  23. context.parameter = 0;
  24. context.constant = kernel.constantMemory();
  25. context.metadata = 0;
  26. }
Add Comment
Please, Sign In to add comment