Works for me on AMD based hardware.
```
hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff on acpi0
hpet0: vendor 0x4353, rev 0x10, 14318180Hz, 3 timers, legacy route
hpet0: t0: irqs 0x00c00000 (0), MSI, periodic
hpet0: t1: irqs 0x00c00000 (0), MSI, periodic
hpet0: t2: irqs 0x00c00000 (0), MSI, periodic
Timecounter "HPET" frequency 14318180 Hz quality 950
Event timer "HPET" frequency 14318180 Hz quality 450
Event timer "HPET1" frequency 14318180 Hz quality 450
Event timer "HPET2" frequency 14318180 Hz quality 450
random: harvesting attach, 8 bytes (4 bits) from hpet0
NMI watchdog: found timer HPET1
NMI watchdog: using timer HPET1
```
Also, this is how it looks when the watchdog "barks":
```
panic: NMI watchdog
cpuid = 0
time = 1527700411
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xffffffff81fbc930
vpanic() at vpanic+0x1a3/frame 0xffffffff81fbc990
panic() at panic+0x43/frame 0xffffffff81fbc9f0
nmi_call_kdb() at nmi_call_kdb+0x80/frame 0xffffffff81fbca20
nmi_call_kdb_smp() at nmi_call_kdb_smp+0x47/frame 0xffffffff81fbca50
trap() at trap+0x246/frame 0xffffffff81fbcb60
nmi_calltrap() at nmi_calltrap+0x8/frame 0xffffffff81fbcb60
--- trap 0x13, rip = 0xffffffff811cf8d6, rsp = 0xfffffe00413bea50, rbp = 0xfffffe00413bea50 ---
acpi_cpu_c1() at acpi_cpu_c1+0x6/frame 0xfffffe00413bea50
acpi_cpu_idle() at acpi_cpu_idle+0x2ee/frame 0xfffffe00413beaa0
cpu_idle_acpi() at cpu_idle_acpi+0x3f/frame 0xfffffe00413beac0
cpu_idle() at cpu_idle+0x95/frame 0xfffffe00413beae0
sched_idletd() at sched_idletd+0x517/frame 0xfffffe00413bebb0
fork_exit() at fork_exit+0x84/frame 0xfffffe00413bebf0
fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00413bebf0
--- trap 0, rip = 0, rsp = 0, rbp = 0 ---
KDB: enter: panic
[ thread pid 11 tid 100003 ]
Stopped at kdb_enter+0x3b: movq $0,kdb_why
```