private static JobHandle GetFenceBeforeJobStartXBO(
     IDependableMemoryResource pinX,
     IDependableMemoryResource pinB,
     IDependableMemoryResource pinO)
 {
     return(BurstCPUOps.Dependencies(pinX.fence, pinB.fence, pinO.reuse));
 }
        internal static void ScheduleXO <T>(this T jobData, Tensor X, Tensor O)
            where T : struct, IJob, BurstCPUOps.IJobResourceDeclarationXO
        {
            var pinX = BurstCPUOps.Pin(X);
            var pinO = BurstCPUOps.Pin(O, uploadCache: false);

            jobData.ScheduleXO(pinX, pinO);
        }
        internal static void ScheduleXO <T>(this T jobData, Tensor X, Tensor O,
                                            int arrayLength, int innerloopBatchCount)
            where T : struct, IJobParallelFor, BurstCPUOps.IJobResourceDeclarationXO
        {
            var pinX = BurstCPUOps.Pin(X);
            var pinO = BurstCPUOps.Pin(O, uploadCache: false);

            jobData.ScheduleXO(pinX, pinO, arrayLength, innerloopBatchCount);
        }
示例#4
0
        internal static void ScheduleXSBO <T>(this T jobData, Tensor X, Tensor S, Tensor B, Tensor O,
                                              int arrayLength, int innerloopBatchCount)
            where T : struct, IJobParallelFor, BurstCPUOps.IJobResourceDeclarationXSBO
        {
            var pinX = BurstCPUOps.Pin(X);
            var pinS = BurstCPUOps.Pin(S);
            var pinB = BurstCPUOps.Pin(B);
            var pinO = BurstCPUOps.Pin(O);

            jobData.ScheduleXSBO(pinX, pinS, pinB, pinO, arrayLength, innerloopBatchCount);
        }