i was writing this two years ago - it seems concept of moving packets from CPU to GPU may have some merits. it’s worth to take a look at packetshader page.
still however, hardware config needed to achieve that kind of performance that you can get straight from the shelf is quite expensive. it shows however that not only NetFPGA is a way forward with host-based packet forwarding/routing, while utilizing GPU as a idle resource.
the problem is with services - things like ACL and QoS or MPLS are either not supported, or slow things down considerably. the other problem - is lack of support in the long term for running GPU under constant 100% load. balancing load vs performance may be however good choice.