Esempio n. 1
0
        /// <summary cref="IBackendCodeGenerator.GenerateCode(Barrier)"/>
        public void GenerateCode(Barrier barrier)
        {
            using var command = BeginCommand(PTXInstructions.GetBarrier(barrier.Kind));
            switch (barrier.Kind)
            {
            case BarrierKind.WarpLevel:
                command.AppendConstant(
                    PTXInstructions.AllThreadsInAWarpMemberMask);
                break;

            case BarrierKind.GroupLevel:
                command.AppendConstant(0);
                break;

            default:
                throw new InvalidCodeGenerationException();
            }
        }