Thank you for your reply.
The reason I think it’s slow is that the same training process costs two minutes using numpy+CPU but  an hour using pytorch+GPU.
here is my numpy code:
                    z = np.dot(syn0[context_word],syn1[word_out].T)
                    p = expit(z)
                    g = alpha * (label-p)
                    neu1e = syn1[x_]
                    syn1[x_] += np.outer(g,syn0[context_word])
                    syn0[context_word] += np.dot(g,neu1e)

There must be something wrong with my pytorch code.