EGPU: Extending eBPF Programmability and Observability to GPUs