Hi,Conrad, NetTrain work well without GPU.
I'm sorry I don't have GPU in my PC.
trainSetX = Table[RandomReal[1, 12888], {5}];
trainSetY = Table[RandomReal[], {5}];
testSetX = Table[RandomReal[1, 12888], {1}];
testSetY = Table[RandomReal[], {1}];
layer1 = NetInitialize@LinearLayer[12888, "Input" -> 12888];
layer2 = ElementwiseLayer[LogisticSigmoid];
layer3 = SummationLayer[];
layers = {layer1, layer2, layer3};
netChain = NetChain[layers];
{time, trained} =
AbsoluteTiming@
NetTrain[netChain, Rule[trainSetX, trainSetY], All,
ValidationSet -> Rule[testSetX, testSetY]]