Read up on the buildworld cycle and compiling a custom kernel. But do it on a -STABLE or -RELEASE branch, and not on 9-CURRENT. You really don't want to be running -CURRENT unless you are okay with things breaking now and then, debugging issues, reporting bugs, doing follow-ups, etc. It will require a lot of recompiling, ports will fail to run, there are no binary packages available, etc.
IOW, it's a lot of work, and something that people tend to work toward (start with -RELEASE using freebsd-update/portsnap, move to -STABLE, start using buildworld/buildkernel, get comfortable with testing/send-pr, then try -CURRENT).
However, if you want to jump in the deep-end, then do research on compiling a custom kernel.