   void operator()(agency::parallel_group<agency::cuda::concurrent_agent>& self)
   {
     printf("hello from {%d, %d}\n", (int)self.outer().index(), (int)self.inner().index());
+  }
+
+  __device__
+  void operator()(agency::parallel_group_2d<agency::cuda::concurrent_agent_2d>& self)
+  {
   }
 };
 

}


int main()
{
  bulk_invoke(grid(2,32), kernel());

  return 0;
}


#include <agency/cuda/execution_policy.hpp>
#include <cstdio>


struct kernel
{
