Thanks for you replying!
I revised the test code as follows:
CNN = CircleConvCNN(1, 9)
CNN.to('cuda')
for i in range(10):
    torch.cuda.synchronize()
    print('time tick:')
    ticks = time.time()
    x = torch.randn(800, 147).to('cuda')
    out = CNN(x)
    torch.cuda.synchronize()
    print('forward elapsed time:{}'.format(time.time() - ticks))
    torch.cuda.synchronize()
    print('time tick:')
    ticks = time.time()
    out.mean().backward()
    torch.cuda.synchronize()
    print('backward elapsed time:{}'.format(time.time() - ticks))


So it will take the time record after cuda operations complete.
But the operations(mainly in CircleConv layer) i defined were very slow, how to make it faster?