To execute thousands of threads concurrently, GPUs spend significant hardware resources on register storage. For example, each Nvidia Fermi GPU contains 2 Mbytes of registers.5 Naively checkpointing all registers used by a thread at transaction boundaries,as proposed in many HTM publications, is too expensive. Kilo TM uses software for version management of registers and local memory space. We observed in our applications that the original values in many registers are rarely used when a transaction restarts, so restoration is unnecessary. A compiler could determine which registers are both read and written within a transaction and insert code to checkpoint and restore them before and after a transaction. The worst of our benchmarks requires restoring two registers per transaction on average, whereas other benchmarks require none.