Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void LLVMDynamicExecutive::CooperativeThreadArray::initializeContext(
- LLVMContext &context,
- int threadId,
- const LLVMDynamicKernel &kernel,
- const ir::Dim3 &ctaId,
- int localMemorySize) {
- context.nctaid.x = kernel.gridDim().x;
- context.nctaid.y = kernel.gridDim().y;
- context.nctaid.z = kernel.gridDim().z;
- context.ctaid.x = ctaId.x;
- context.ctaid.y = ctaId.y;
- context.ctaid.z = ctaId.z;
- context.ntid.x = kernel.blockDim().x;
- context.ntid.y = kernel.blockDim().y;
- context.ntid.z = kernel.blockDim().z;
- context.tid.x = threadId % context.ntid.x;
- context.tid.y = (threadId / context.ntid.x) % context.ntid.y;
- context.tid.z = threadId / (context.ntid.x * context.ntid.y);
- context.shared = reinterpret_cast<char*>(&shared[0]);
- context.argument = kernel.argumentMemory();
- context.local = &local[threadId * localMemorySize];
- context.parameter = 0;
- context.constant = kernel.constantMemory();
- context.metadata = 0;
- }
Add Comment
Please, Sign In to add comment