Lines Matching refs:link

276 inline PetscErrorCode SfInterface<T>::Pack(PetscSFLink link, PetscInt count, PetscInt start, PetscS…  in Pack()  argument
283 …MemcpyAsync(buf, (char *)data + start * link->unitbytes, count * link->unitbytes, cupmMemcpyDevice… in Pack()
285 …PetscCall(PetscCUPMLaunchKernel1D(count, 0, link->stream, kernels::d_Pack<Type, BS, EQ>, link->bs,… in Pack()
292 inline PetscErrorCode SfInterface<T>::UnpackAndOp(PetscSFLink link, PetscInt count, PetscInt start,… in UnpackAndOp() argument
299 …upmMemcpyAsync((char *)data + start * link->unitbytes, buf, count * link->unitbytes, cupmMemcpyDev… in UnpackAndOp()
301 …PetscCall(PetscCUPMLaunchKernel1D(count, 0, link->stream, kernels::d_UnpackAndOp<Type, Op, BS, EQ>… in UnpackAndOp()
308 inline PetscErrorCode SfInterface<T>::FetchAndOp(PetscSFLink link, PetscInt count, PetscInt start, … in FetchAndOp() argument
314 …PetscCall(PetscCUPMLaunchKernel1D(count, 0, link->stream, kernels::d_FetchAndOp<Type, Op, BS, EQ>,… in FetchAndOp()
320 inline PetscErrorCode SfInterface<T>::ScatterAndOp(PetscSFLink link, PetscInt count, PetscInt srcSt… in ScatterAndOp() argument
328 nblocks = PetscMin(nblocks, link->maxResidentThreadsPerGPU / nthreads); in ScatterAndOp()
355 …PetscCall(PetscCUPMLaunchKernel1D(count, 0, link->stream, kernels::d_ScatterAndOp<Type, Op, BS, EQ… in ScatterAndOp()
362 inline PetscErrorCode SfInterface<T>::ScatterAndInsert(PetscSFLink link, PetscInt count, PetscInt s… in ScatterAndInsert() argument
368 …ype *)dst + dstStart * link->bs, (const Type *)src + srcStart * link->bs, count * link->unitbytes,… in ScatterAndInsert()
370 …PetscCall(ScatterAndOp<Type, kernels::Insert<Type>, BS, EQ>(link, count, srcStart, srcOpt, srcIdx,… in ScatterAndInsert()
377 inline PetscErrorCode SfInterface<T>::FetchAndOpLocal(PetscSFLink link, PetscInt count, PetscInt ro… in FetchAndOpLocal() argument
384 …PetscCall(PetscCUPMLaunchKernel1D(count, 0, link->stream, kernels::d_FetchAndOpLocal<Type, Op, BS,… in FetchAndOpLocal()
393 inline void SfInterface<T>::PackInit_RealType(PetscSFLink link) noexcept in PackInit_RealType() argument
396 link->d_Pack = Pack<Type, BS, EQ>; in PackInit_RealType()
397 link->d_UnpackAndInsert = UnpackAndOp<Type, kernels::Insert<Type>, BS, EQ>; in PackInit_RealType()
398 link->d_UnpackAndAdd = UnpackAndOp<Type, kernels::Add<Type>, BS, EQ>; in PackInit_RealType()
399 link->d_UnpackAndMult = UnpackAndOp<Type, kernels::Mult<Type>, BS, EQ>; in PackInit_RealType()
400 link->d_UnpackAndMin = UnpackAndOp<Type, kernels::Min<Type>, BS, EQ>; in PackInit_RealType()
401 link->d_UnpackAndMax = UnpackAndOp<Type, kernels::Max<Type>, BS, EQ>; in PackInit_RealType()
402 link->d_FetchAndAdd = FetchAndOp<Type, kernels::Add<Type>, BS, EQ>; in PackInit_RealType()
405 link->d_ScatterAndInsert = ScatterAndInsert<Type, BS, EQ>; /* Has special optimizations */ in PackInit_RealType()
406 link->d_ScatterAndAdd = ScatterAndOp<Type, kernels::Add<Type>, BS, EQ>; in PackInit_RealType()
407 link->d_ScatterAndMult = ScatterAndOp<Type, kernels::Mult<Type>, BS, EQ>; in PackInit_RealType()
408 link->d_ScatterAndMin = ScatterAndOp<Type, kernels::Min<Type>, BS, EQ>; in PackInit_RealType()
409 link->d_ScatterAndMax = ScatterAndOp<Type, kernels::Max<Type>, BS, EQ>; in PackInit_RealType()
410 link->d_FetchAndAddLocal = FetchAndOpLocal<Type, kernels::Add<Type>, BS, EQ>; in PackInit_RealType()
413 link->da_UnpackAndInsert = UnpackAndOp<Type, AtomicInsert<Type>, BS, EQ>; in PackInit_RealType()
414 link->da_UnpackAndAdd = UnpackAndOp<Type, AtomicAdd<Type>, BS, EQ>; in PackInit_RealType()
415 link->da_UnpackAndMult = UnpackAndOp<Type, AtomicMult<Type>, BS, EQ>; in PackInit_RealType()
416 link->da_UnpackAndMin = UnpackAndOp<Type, AtomicMin<Type>, BS, EQ>; in PackInit_RealType()
417 link->da_UnpackAndMax = UnpackAndOp<Type, AtomicMax<Type>, BS, EQ>; in PackInit_RealType()
418 link->da_FetchAndAdd = FetchAndOp<Type, AtomicAdd<Type>, BS, EQ>; in PackInit_RealType()
420 link->da_ScatterAndInsert = ScatterAndOp<Type, AtomicInsert<Type>, BS, EQ>; in PackInit_RealType()
421 link->da_ScatterAndAdd = ScatterAndOp<Type, AtomicAdd<Type>, BS, EQ>; in PackInit_RealType()
422 link->da_ScatterAndMult = ScatterAndOp<Type, AtomicMult<Type>, BS, EQ>; in PackInit_RealType()
423 link->da_ScatterAndMin = ScatterAndOp<Type, AtomicMin<Type>, BS, EQ>; in PackInit_RealType()
424 link->da_ScatterAndMax = ScatterAndOp<Type, AtomicMax<Type>, BS, EQ>; in PackInit_RealType()
425 link->da_FetchAndAddLocal = FetchAndOpLocal<Type, AtomicAdd<Type>, BS, EQ>; in PackInit_RealType()
432 static inline void Init(PetscSFLink link) noexcept in Init()
434 link->da_UnpackAndInsert = UnpackAndOp<Type, AtomicInsert<Type>, BS, EQ>; in Init()
435 link->da_UnpackAndAdd = UnpackAndOp<Type, AtomicAdd<Type>, BS, EQ>; in Init()
436 link->da_UnpackAndMult = UnpackAndOp<Type, AtomicMult<Type>, BS, EQ>; in Init()
437 link->da_UnpackAndMin = UnpackAndOp<Type, AtomicMin<Type>, BS, EQ>; in Init()
438 link->da_UnpackAndMax = UnpackAndOp<Type, AtomicMax<Type>, BS, EQ>; in Init()
439 link->da_UnpackAndLAND = UnpackAndOp<Type, AtomicLAND<Type>, BS, EQ>; in Init()
440 link->da_UnpackAndLOR = UnpackAndOp<Type, AtomicLOR<Type>, BS, EQ>; in Init()
441 link->da_UnpackAndLXOR = UnpackAndOp<Type, AtomicLXOR<Type>, BS, EQ>; in Init()
442 link->da_UnpackAndBAND = UnpackAndOp<Type, AtomicBAND<Type>, BS, EQ>; in Init()
443 link->da_UnpackAndBOR = UnpackAndOp<Type, AtomicBOR<Type>, BS, EQ>; in Init()
444 link->da_UnpackAndBXOR = UnpackAndOp<Type, AtomicBXOR<Type>, BS, EQ>; in Init()
445 link->da_FetchAndAdd = FetchAndOp<Type, AtomicAdd<Type>, BS, EQ>; in Init()
447 link->da_ScatterAndInsert = ScatterAndOp<Type, AtomicInsert<Type>, BS, EQ>; in Init()
448 link->da_ScatterAndAdd = ScatterAndOp<Type, AtomicAdd<Type>, BS, EQ>; in Init()
449 link->da_ScatterAndMult = ScatterAndOp<Type, AtomicMult<Type>, BS, EQ>; in Init()
450 link->da_ScatterAndMin = ScatterAndOp<Type, AtomicMin<Type>, BS, EQ>; in Init()
451 link->da_ScatterAndMax = ScatterAndOp<Type, AtomicMax<Type>, BS, EQ>; in Init()
452 link->da_ScatterAndLAND = ScatterAndOp<Type, AtomicLAND<Type>, BS, EQ>; in Init()
453 link->da_ScatterAndLOR = ScatterAndOp<Type, AtomicLOR<Type>, BS, EQ>; in Init()
454 link->da_ScatterAndLXOR = ScatterAndOp<Type, AtomicLXOR<Type>, BS, EQ>; in Init()
455 link->da_ScatterAndBAND = ScatterAndOp<Type, AtomicBAND<Type>, BS, EQ>; in Init()
456 link->da_ScatterAndBOR = ScatterAndOp<Type, AtomicBOR<Type>, BS, EQ>; in Init()
457 link->da_ScatterAndBXOR = ScatterAndOp<Type, AtomicBXOR<Type>, BS, EQ>; in Init()
458 link->da_FetchAndAddLocal = FetchAndOpLocal<Type, AtomicAdd<Type>, BS, EQ>; in Init()
471 inline void SfInterface<T>::PackInit_IntegerType(PetscSFLink link) noexcept in PackInit_IntegerType() argument
473 link->d_Pack = Pack<Type, BS, EQ>; in PackInit_IntegerType()
474 link->d_UnpackAndInsert = UnpackAndOp<Type, kernels::Insert<Type>, BS, EQ>; in PackInit_IntegerType()
475 link->d_UnpackAndAdd = UnpackAndOp<Type, kernels::Add<Type>, BS, EQ>; in PackInit_IntegerType()
476 link->d_UnpackAndMult = UnpackAndOp<Type, kernels::Mult<Type>, BS, EQ>; in PackInit_IntegerType()
477 link->d_UnpackAndMin = UnpackAndOp<Type, kernels::Min<Type>, BS, EQ>; in PackInit_IntegerType()
478 link->d_UnpackAndMax = UnpackAndOp<Type, kernels::Max<Type>, BS, EQ>; in PackInit_IntegerType()
479 link->d_UnpackAndLAND = UnpackAndOp<Type, kernels::LAND<Type>, BS, EQ>; in PackInit_IntegerType()
480 link->d_UnpackAndLOR = UnpackAndOp<Type, kernels::LOR<Type>, BS, EQ>; in PackInit_IntegerType()
481 link->d_UnpackAndLXOR = UnpackAndOp<Type, kernels::LXOR<Type>, BS, EQ>; in PackInit_IntegerType()
482 link->d_UnpackAndBAND = UnpackAndOp<Type, kernels::BAND<Type>, BS, EQ>; in PackInit_IntegerType()
483 link->d_UnpackAndBOR = UnpackAndOp<Type, kernels::BOR<Type>, BS, EQ>; in PackInit_IntegerType()
484 link->d_UnpackAndBXOR = UnpackAndOp<Type, kernels::BXOR<Type>, BS, EQ>; in PackInit_IntegerType()
485 link->d_FetchAndAdd = FetchAndOp<Type, kernels::Add<Type>, BS, EQ>; in PackInit_IntegerType()
487 link->d_ScatterAndInsert = ScatterAndInsert<Type, BS, EQ>; in PackInit_IntegerType()
488 link->d_ScatterAndAdd = ScatterAndOp<Type, kernels::Add<Type>, BS, EQ>; in PackInit_IntegerType()
489 link->d_ScatterAndMult = ScatterAndOp<Type, kernels::Mult<Type>, BS, EQ>; in PackInit_IntegerType()
490 link->d_ScatterAndMin = ScatterAndOp<Type, kernels::Min<Type>, BS, EQ>; in PackInit_IntegerType()
491 link->d_ScatterAndMax = ScatterAndOp<Type, kernels::Max<Type>, BS, EQ>; in PackInit_IntegerType()
492 link->d_ScatterAndLAND = ScatterAndOp<Type, kernels::LAND<Type>, BS, EQ>; in PackInit_IntegerType()
493 link->d_ScatterAndLOR = ScatterAndOp<Type, kernels::LOR<Type>, BS, EQ>; in PackInit_IntegerType()
494 link->d_ScatterAndLXOR = ScatterAndOp<Type, kernels::LXOR<Type>, BS, EQ>; in PackInit_IntegerType()
495 link->d_ScatterAndBAND = ScatterAndOp<Type, kernels::BAND<Type>, BS, EQ>; in PackInit_IntegerType()
496 link->d_ScatterAndBOR = ScatterAndOp<Type, kernels::BOR<Type>, BS, EQ>; in PackInit_IntegerType()
497 link->d_ScatterAndBXOR = ScatterAndOp<Type, kernels::BXOR<Type>, BS, EQ>; in PackInit_IntegerType()
498 link->d_FetchAndAddLocal = FetchAndOpLocal<Type, kernels::Add<Type>, BS, EQ>; in PackInit_IntegerType()
499 PackInit_IntegerType_Atomic<Type, BS, EQ, sizeof(Type)>::Init(link); in PackInit_IntegerType()
505 inline void SfInterface<T>::PackInit_ComplexType(PetscSFLink link) noexcept in PackInit_ComplexType() argument
507 link->d_Pack = Pack<Type, BS, EQ>; in PackInit_ComplexType()
508 link->d_UnpackAndInsert = UnpackAndOp<Type, kernels::Insert<Type>, BS, EQ>; in PackInit_ComplexType()
509 link->d_UnpackAndAdd = UnpackAndOp<Type, kernels::Add<Type>, BS, EQ>; in PackInit_ComplexType()
510 link->d_UnpackAndMult = UnpackAndOp<Type, kernels::Mult<Type>, BS, EQ>; in PackInit_ComplexType()
511 link->d_FetchAndAdd = FetchAndOp<Type, kernels::Add<Type>, BS, EQ>; in PackInit_ComplexType()
513 link->d_ScatterAndInsert = ScatterAndInsert<Type, BS, EQ>; in PackInit_ComplexType()
514 link->d_ScatterAndAdd = ScatterAndOp<Type, kernels::Add<Type>, BS, EQ>; in PackInit_ComplexType()
515 link->d_ScatterAndMult = ScatterAndOp<Type, kernels::Mult<Type>, BS, EQ>; in PackInit_ComplexType()
516 link->d_FetchAndAddLocal = FetchAndOpLocal<Type, kernels::Add<Type>, BS, EQ>; in PackInit_ComplexType()
518 link->da_UnpackAndInsert = UnpackAndOp<Type, AtomicInsert<Type>, BS, EQ>; in PackInit_ComplexType()
519 link->da_UnpackAndAdd = UnpackAndOp<Type, AtomicAdd<Type>, BS, EQ>; in PackInit_ComplexType()
520 link->da_UnpackAndMult = NULL; /* Not implemented yet */ in PackInit_ComplexType()
521 link->da_FetchAndAdd = NULL; /* Return value of atomicAdd on complex is not atomic */ in PackInit_ComplexType()
523 link->da_ScatterAndInsert = ScatterAndOp<Type, AtomicInsert<Type>, BS, EQ>; in PackInit_ComplexType()
524 link->da_ScatterAndAdd = ScatterAndOp<Type, AtomicAdd<Type>, BS, EQ>; in PackInit_ComplexType()
541 inline void SfInterface<T>::PackInit_PairType(PetscSFLink link) noexcept in PackInit_PairType() argument
543 link->d_Pack = Pack<Type, 1, 1>; in PackInit_PairType()
544 link->d_UnpackAndInsert = UnpackAndOp<Type, kernels::Insert<Type>, 1, 1>; in PackInit_PairType()
545 link->d_UnpackAndMaxloc = UnpackAndOp<Type, kernels::Maxloc<Type>, 1, 1>; in PackInit_PairType()
546 link->d_UnpackAndMinloc = UnpackAndOp<Type, kernels::Minloc<Type>, 1, 1>; in PackInit_PairType()
548 link->d_ScatterAndInsert = ScatterAndOp<Type, kernels::Insert<Type>, 1, 1>; in PackInit_PairType()
549 link->d_ScatterAndMaxloc = ScatterAndOp<Type, kernels::Maxloc<Type>, 1, 1>; in PackInit_PairType()
550 link->d_ScatterAndMinloc = ScatterAndOp<Type, kernels::Minloc<Type>, 1, 1>; in PackInit_PairType()
556 inline void SfInterface<T>::PackInit_DumbType(PetscSFLink link) noexcept in PackInit_DumbType() argument
558 link->d_Pack = Pack<Type, BS, EQ>; in PackInit_DumbType()
559 link->d_UnpackAndInsert = UnpackAndOp<Type, kernels::Insert<Type>, BS, EQ>; in PackInit_DumbType()
560 link->d_ScatterAndInsert = ScatterAndInsert<Type, BS, EQ>; in PackInit_DumbType()
574 inline PetscErrorCode SfInterface<T>::LinkSyncStream(PetscSFLink link) noexcept in LinkSyncStream() argument
577 PetscCallCUPM(cupmStreamSynchronize(link->stream)); in LinkSyncStream()
582 inline PetscErrorCode SfInterface<T>::LinkMemcpy(PetscSFLink link, PetscMemType dstmtype, void *dst… in LinkMemcpy() argument
596 PetscCallCUPM(cupmMemcpyAsync(dst, src, n, kinds[stype][dtype], link->stream)); in LinkMemcpy()
626 inline PetscErrorCode SfInterface<T>::LinkDestroy_MPI(PetscSF, PetscSFLink link) noexcept in LinkDestroy_MPI() argument
630 PetscCallCUPM(cupmFree(link->rootbuf_alloc[i][PETSC_MEMTYPE_DEVICE])); in LinkDestroy_MPI()
631 PetscCallCUPM(cupmFree(link->leafbuf_alloc[i][PETSC_MEMTYPE_DEVICE])); in LinkDestroy_MPI()
642 inline PetscErrorCode SfInterface<T>::LinkSetUp(PetscSF sf, PetscSFLink link, MPI_Datatype unit) no… in LinkSetUp() argument
651 if (link->deviceinited) PetscFunctionReturn(PETSC_SUCCESS); in LinkSetUp()
665 PackInit_PairType<PairInt>(link); in LinkSetUp()
667 PackInit_PairType<PairPetscInt>(link); in LinkSetUp()
670 if (nPetscReal == 8) PackInit_RealType<PetscReal, 8, 1>(link); in LinkSetUp()
671 else if (nPetscReal % 8 == 0) PackInit_RealType<PetscReal, 8, 0>(link); in LinkSetUp()
672 else if (nPetscReal == 4) PackInit_RealType<PetscReal, 4, 1>(link); in LinkSetUp()
673 else if (nPetscReal % 4 == 0) PackInit_RealType<PetscReal, 4, 0>(link); in LinkSetUp()
674 else if (nPetscReal == 2) PackInit_RealType<PetscReal, 2, 1>(link); in LinkSetUp()
675 else if (nPetscReal % 2 == 0) PackInit_RealType<PetscReal, 2, 0>(link); in LinkSetUp()
676 else if (nPetscReal == 1) PackInit_RealType<PetscReal, 1, 1>(link); in LinkSetUp()
679 PackInit_RealType<PetscReal, 1, 0>(link); in LinkSetUp()
682 if (nPetscInt == 8) PackInit_IntegerType<llint, 8, 1>(link); in LinkSetUp()
683 else if (nPetscInt % 8 == 0) PackInit_IntegerType<llint, 8, 0>(link); in LinkSetUp()
684 else if (nPetscInt == 4) PackInit_IntegerType<llint, 4, 1>(link); in LinkSetUp()
685 else if (nPetscInt % 4 == 0) PackInit_IntegerType<llint, 4, 0>(link); in LinkSetUp()
686 else if (nPetscInt == 2) PackInit_IntegerType<llint, 2, 1>(link); in LinkSetUp()
687 else if (nPetscInt % 2 == 0) PackInit_IntegerType<llint, 2, 0>(link); in LinkSetUp()
688 else if (nPetscInt == 1) PackInit_IntegerType<llint, 1, 1>(link); in LinkSetUp()
691 PackInit_IntegerType<llint, 1, 0>(link); in LinkSetUp()
694 if (nInt == 8) PackInit_IntegerType<int, 8, 1>(link); in LinkSetUp()
695 else if (nInt % 8 == 0) PackInit_IntegerType<int, 8, 0>(link); in LinkSetUp()
696 else if (nInt == 4) PackInit_IntegerType<int, 4, 1>(link); in LinkSetUp()
697 else if (nInt % 4 == 0) PackInit_IntegerType<int, 4, 0>(link); in LinkSetUp()
698 else if (nInt == 2) PackInit_IntegerType<int, 2, 1>(link); in LinkSetUp()
699 else if (nInt % 2 == 0) PackInit_IntegerType<int, 2, 0>(link); in LinkSetUp()
700 else if (nInt == 1) PackInit_IntegerType<int, 1, 1>(link); in LinkSetUp()
703 PackInit_IntegerType<int, 1, 0>(link); in LinkSetUp()
706 if (nSignedChar == 8) PackInit_IntegerType<SignedChar, 8, 1>(link); in LinkSetUp()
707 else if (nSignedChar % 8 == 0) PackInit_IntegerType<SignedChar, 8, 0>(link); in LinkSetUp()
708 else if (nSignedChar == 4) PackInit_IntegerType<SignedChar, 4, 1>(link); in LinkSetUp()
709 else if (nSignedChar % 4 == 0) PackInit_IntegerType<SignedChar, 4, 0>(link); in LinkSetUp()
710 else if (nSignedChar == 2) PackInit_IntegerType<SignedChar, 2, 1>(link); in LinkSetUp()
711 else if (nSignedChar % 2 == 0) PackInit_IntegerType<SignedChar, 2, 0>(link); in LinkSetUp()
712 else if (nSignedChar == 1) PackInit_IntegerType<SignedChar, 1, 1>(link); in LinkSetUp()
715 PackInit_IntegerType<SignedChar, 1, 0>(link); in LinkSetUp()
718 if (nUnsignedChar == 8) PackInit_IntegerType<UnsignedChar, 8, 1>(link); in LinkSetUp()
719 else if (nUnsignedChar % 8 == 0) PackInit_IntegerType<UnsignedChar, 8, 0>(link); in LinkSetUp()
720 else if (nUnsignedChar == 4) PackInit_IntegerType<UnsignedChar, 4, 1>(link); in LinkSetUp()
721 else if (nUnsignedChar % 4 == 0) PackInit_IntegerType<UnsignedChar, 4, 0>(link); in LinkSetUp()
722 else if (nUnsignedChar == 2) PackInit_IntegerType<UnsignedChar, 2, 1>(link); in LinkSetUp()
723 else if (nUnsignedChar % 2 == 0) PackInit_IntegerType<UnsignedChar, 2, 0>(link); in LinkSetUp()
724 else if (nUnsignedChar == 1) PackInit_IntegerType<UnsignedChar, 1, 1>(link); in LinkSetUp()
727 PackInit_IntegerType<UnsignedChar, 1, 0>(link); in LinkSetUp()
731 if (nPetscComplex == 8) PackInit_ComplexType<PetscComplex, 8, 1>(link); in LinkSetUp()
732 else if (nPetscComplex % 8 == 0) PackInit_ComplexType<PetscComplex, 8, 0>(link); in LinkSetUp()
733 else if (nPetscComplex == 4) PackInit_ComplexType<PetscComplex, 4, 1>(link); in LinkSetUp()
734 else if (nPetscComplex % 4 == 0) PackInit_ComplexType<PetscComplex, 4, 0>(link); in LinkSetUp()
735 else if (nPetscComplex == 2) PackInit_ComplexType<PetscComplex, 2, 1>(link); in LinkSetUp()
736 else if (nPetscComplex % 2 == 0) PackInit_ComplexType<PetscComplex, 2, 0>(link); in LinkSetUp()
737 else if (nPetscComplex == 1) PackInit_ComplexType<PetscComplex, 1, 1>(link); in LinkSetUp()
740 PackInit_ComplexType<PetscComplex, 1, 0>(link); in LinkSetUp()
749 if (nbyte == 4) PackInit_DumbType<char, 4, 1>(link); in LinkSetUp()
750 else if (nbyte % 4 == 0) PackInit_DumbType<char, 4, 0>(link); in LinkSetUp()
751 else if (nbyte == 2) PackInit_DumbType<char, 2, 1>(link); in LinkSetUp()
752 else if (nbyte % 2 == 0) PackInit_DumbType<char, 2, 0>(link); in LinkSetUp()
753 else if (nbyte == 1) PackInit_DumbType<char, 1, 1>(link); in LinkSetUp()
756 PackInit_DumbType<char, 1, 0>(link); in LinkSetUp()
760 if (nInt == 8) PackInit_DumbType<int, 8, 1>(link); in LinkSetUp()
761 else if (nInt % 8 == 0) PackInit_DumbType<int, 8, 0>(link); in LinkSetUp()
762 else if (nInt == 4) PackInit_DumbType<int, 4, 1>(link); in LinkSetUp()
763 else if (nInt % 4 == 0) PackInit_DumbType<int, 4, 0>(link); in LinkSetUp()
764 else if (nInt == 2) PackInit_DumbType<int, 2, 1>(link); in LinkSetUp()
765 else if (nInt % 2 == 0) PackInit_DumbType<int, 2, 0>(link); in LinkSetUp()
766 else if (nInt == 1) PackInit_DumbType<int, 1, 1>(link); in LinkSetUp()
769 PackInit_DumbType<int, 1, 0>(link); in LinkSetUp()
781 link->maxResidentThreadsPerGPU = sf->maxResidentThreadsPerGPU; in LinkSetUp()
789 link->stream = *stream; in LinkSetUp()
791 link->Destroy = LinkDestroy_MPI; in LinkSetUp()
792 link->SyncDevice = LinkSyncDevice; in LinkSetUp()
793 link->SyncStream = LinkSyncStream; in LinkSetUp()
794 link->Memcpy = LinkMemcpy; in LinkSetUp()
795 link->deviceinited = PETSC_TRUE; in LinkSetUp()