This has been answered before, on a different site though.
What's probably most important for you is that Nmap assumes by default that your network may be affected by scans, and starts with all the high timers and low counters which then are then refined during the scan. If you're sure that your network (including the last mile towards your scanning machine) is rather stable and powerful, and there are no security appliances on the way that would rate limit (or even ban) you during the scan (or if there are any, then you'd be able to switch them off), you can play with those counters and timers to achieve pretty good results.
Options probably most important for you are:
-T5
or-T4
--max-retries
: as low as 2 or 3 should be fine, assuming a local network--min-hostgroup
: in year 2018, feel free to use something close to 2048 or above--min-parallelism
: something like 8 would probably be fine
Values above are taken from my personal experience. Your mileage may vary.
Note that the answer I've linked to above also mentions --max-parallelism
, which is an option not to speed up but to decrease the speed. Be careful about that.
That said, for a reference, a /8 IP network has 16777216 addresses. Nmap performance may still not be a good fit for you, but there are tools designed for that particular task, though they require some effort to set them up.