เดเดพเตป เด
เดคเต Github-เตฝ เดชเตเดธเตเดฑเตเดฑเต เดเตเดฏเตเดคเต
เดธเตเดเตเดเดจเตเดฑเดฟเตฝ เดฆเดถเดฒเดเตเดทเดเตเดเดฃเดเตเดเดฟเดจเต เดเตปเดธเตเตผเดเตเดเตเดเตพ เดชเตเดฐเตเดธเดธเตเดธเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดตเตเดณเตเดณ เดเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดเดฟเดชเดฟเดฏเต เดนเดพเดทเต เดเตเดฌเดฟเดณเดพเดฃเดฟเดคเต. เดเดจเตเดฑเต NVIDIA GTX 1060 เดฒเดพเดชเตโเดเตเดชเตเดชเดฟเตฝ, เดเตเดกเต เดเตเดฐเดฎเดฐเดนเดฟเดคเดฎเดพเดฏเดฟ เดเดจเดฑเตเดฑเตเดฑเตเดเตเดฏเตโเดค 64 เดฆเดถเดฒเดเตเดทเด เดเต-เดฎเตเดฒเตเดฏเด เดเตเดกเดฟเดเดณเต เดเดเดฆเตเดถเด 210 ms-เตฝ เดคเดฟเดฐเตเดเตเดเดฏเตเด เดเดเดฆเตเดถเด 32 ms-เตฝ 64 เดฆเดถเดฒเดเตเดทเด เดเตเดกเดฟเดเตพ เดจเตเดเตเดเด เดเตเดฏเตเดฏเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต.
เด เดคเดพเดฏเดคเต, เดเดฐเต เดฒเดพเดชเตโเดเตเดชเตเดชเดฟเดฒเต เดตเตเดเดค เดเดเดฆเตเดถเด 300 เดฆเดถเดฒเดเตเดทเด เดเตปเดธเตเตผเดเตเดเตเดเตพ/เดธเตเดเตเดเดจเตเดฑเตเด 500 เดฆเดถเดฒเดเตเดทเด เดกเดฟเดฒเตเดฑเตเดฑเตเดเตพ/เดธเตเดเตเดเดจเตเดฑเตเดฎเดพเดฃเต.
เดเดเตเดเตเดเตฝเดเดธเตเดเตฝ เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดเดฟเดเตฝเดเดธเตเดเตฝ เดเดจเตเดจเดฟเดตเดฏเดฟเตฝ เดเดคเต เดธเดพเดเตเดเตเดคเดฟเดเดค เดชเตเดฐเดฏเตเดเดฟเดเตเดเดพเดฎเตเดเตเดเดฟเดฒเตเด เดชเดเตเดเดฟเด CUDA-เดฏเดฟเดฒเดพเดฃเต เดเดดเตเดคเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเต. เดเดฐเต เดตเตเดกเดฟเดฏเต เดเดพเตผเดกเดฟเตฝ เดเดฏเตผเดจเตเดจ เดชเตเดฐเดเดเดจเด เดเดฑเดชเตเดชเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดจเดฟเดฐเดตเดงเดฟ เดชเดฐเดฟเดฎเดฟเดคเดฟเดเดณเตเดฃเตเดเต:
- 32-เดฌเดฟเดฑเตเดฑเต เดเตเดเดณเตเด เด เดคเต เดฎเตเดฒเตเดฏเดเตเดเดณเตเด เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เดชเตเดฐเตเดธเดธเตเดธเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเต.
- เดนเดพเดทเต เดเตเดฌเดฟเดณเดฟเดจเต เดเดฐเต เดจเดฟเดถเตเดเดฟเดค เดตเดฒเตเดชเตเดชเดฎเตเดฃเตเดเต.
- เด เดตเดฒเตเดชเตเดชเด เดชเดตเดฑเดฟเดจเต เดฐเดฃเตเดเดฟเดจเต เดคเตเดฒเตเดฏเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเดฃเด.
เดเตเดเตพเดเตเดเตเด เดฎเตเดฒเตเดฏเดเตเดเตพเดเตเดเตเดฎเดพเดฏเดฟ, เดจเดฟเดเตเดเตพ เดเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดกเดฟเดฒเดฟเดฎเดฟเดฑเตเดฑเตผ เดฎเดพเตผเดเตเดเตผ เดฑเดฟเดธเตผเดตเต เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต (เดฎเตเดเดณเดฟเดฒเตเดณเตเดณ เดเตเดกเดฟเตฝ เดเดคเต 0xffffffff เดเดฃเต).
เดชเตเดเตเดเตเดเดณเดฟเดฒเตเดฒเดพเดคเตเดค เดนเดพเดทเต เดเตเดฌเดฟเตพ
เดนเดพเดทเต เดเตเดฌเดฟเตพ เดคเตเดฑเดจเตเดจ เดตเดฟเดฒเดพเดธเด เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต KeyValue
:
struct KeyValue
{
uint32_t key;
uint32_t value;
};
เดเตเดฌเดฟเดณเดฟเดจเตเดฑเต เดตเดฒเตเดชเตเดชเด เดฐเดฃเตเดเดฟเดจเตเดฑเต เดถเดเตเดคเดฟเดฏเดพเดฃเต, เดเดฐเต เดชเตเดฐเตเด เดจเดฎเตเดชเดฑเดฒเตเดฒ, เดเดพเดฐเดฃเด pow2/AND เดฎเดพเดธเตเดเต เดชเตเดฐเดฏเตเดเดฟเดเตเดเดพเตป เดเดฐเต เดตเตเดเดคเตเดคเดฟเดฒเตเดณเตเดณ เดจเดฟเตผเดฆเตเดฆเตเดถเด เดฎเดคเดฟเดฏเดพเดเตเด, เดเดจเตเดจเดพเตฝ เดฎเตเดกเตเดฒเดธเต เดเดชเตเดชเดฑเตเดฑเตเดฑเตผ เดตเดณเดฐเต เดฎเดจเตเดฆเดเดคเดฟเดฏเดฟเดฒเดพเดฃเต. เดฒเตเดจเดฟเดฏเตผ เดเตเดฌเดฟเตพ เดฒเตเดเตเดเดชเตเดชเดฟเตฝ เดเดฐเต เดธเตเดฒเตเดเตเดเดฟเดฒเตเด เดธเตเดฒเตเดเตเดเต เดธเตเดเดฟเด เดชเตเดคเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดฃเตเดเดคเดฟเดจเดพเตฝ, เดฒเตเดจเดฟเดฏเตผ เดชเตเดฐเตเดฌเดฟเดเดเดฟเดจเตเดฑเต เดเดพเดฐเตเดฏเดคเตเดคเดฟเตฝ เดเดคเต เดชเตเดฐเดงเดพเดจเดฎเดพเดฃเต. เดคเตฝเดซเดฒเดฎเดพเดฏเดฟ, เดเดฐเต เดธเตเดฒเตเดเตเดเดฟเดฒเตเด เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตเดฒเดตเต เดฎเตเดกเตเดฏเตเดณเต เดเตเตผเดเตเดเตเดจเตเดจเต.
เดชเดเตเดเดฟเด เดเดฐเต เดฎเตเดฒเดเดคเตเดคเดฟเดจเตเด เดเตเดฏเตเด เดฎเตเดฒเตเดฏเดตเตเด เดฎเดพเดคเตเดฐเดฎเต เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจเตเดณเตเดณเต, เดเตเดฏเตเดเต เดเดฐเต เดนเดพเดทเต เด เดฒเตเดฒ. เดชเดเตเดเดฟเด 32-เดฌเดฟเดฑเตเดฑเต เดเตเดเตพ เดฎเดพเดคเตเดฐเดฎเต เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจเตเดณเตเดณเต เดเดจเตเดจเดคเดฟเดจเดพเตฝ, เดนเดพเดทเต เดตเดณเดฐเต เดตเตเดเดคเตเดคเดฟเตฝ เดเดฃเดเตเดเดพเดเตเดเตเดจเตเดจเต. เดฎเตเดเดณเดฟเดฒเต เดเตเดกเต Murmur3 เดนเดพเดทเต เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต, เดเดคเต เดเตเดฑเดเตเดเต เดทเดฟเดซเตเดฑเตเดฑเตเดเดณเตเด XOR-เดเดณเตเด เดเตเดฃเดจเดเตเดเดณเตเด เดฎเดพเดคเตเดฐเด เดเตเดฏเตเดฏเตเดจเตเดจเต.
เดฎเตเดฎเตเดฎเดฑเดฟ เดเตเดฐเดฎเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดธเตเดตเดคเดจเตเดคเตเดฐเดฎเดพเดฏ เดฒเตเดเตเดเดฟเดเดเต เดชเตเดฐเตเดเตเดเดเตเดทเตป เดเตเดเตเดจเดฟเดเตเดเตเดเตพ เดนเดพเดทเต เดเตเดฌเดฟเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต. เดเดฟเดฒ เดเดดเตเดคเตเดคเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ เด เดคเตเดคเดฐเด เดฎเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเดณเตเดเต เดเตเดฐเดฎเด เดคเดเดธเตเดธเดชเตเดชเตเดเตเดคเตเดคเดฟเดฏเดพเดฒเตเด, เดนเดพเดทเต เดเตเดฌเดฟเตพ เดถเดฐเดฟเดฏเดพเดฏ เดจเดฟเดฒ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเด. เดเดเตเดเตพ เดเดคเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเต เดเตเดตเดเต เดธเดเดธเดพเดฐเดฟเดเตเดเตเด. เดเดฐเตเดธเดฎเดฏเด เดเดฏเดฟเดฐเดเตเดเดฃเดเตเดเดฟเดจเต เดคเตเดฐเตเดกเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจ เดตเตเดกเดฟเดฏเต เดเดพเตผเดกเตเดเดณเดฟเตฝ เด เดธเดพเดเตเดเตเดคเดฟเดเดตเดฟเดฆเตเดฏ เดฎเดฟเดเดเตเด เดฐเตเดคเดฟเดฏเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต.
เดนเดพเดทเต เดเตเดฌเดฟเดณเดฟเดฒเต เดเตเดเดณเตเด เดฎเตเดฒเตเดฏเดเตเดเดณเตเด เดถเตเดจเตเดฏเดฎเดพเดเตเดเดพเตป เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเต.
64-เดฌเดฟเดฑเตเดฑเต เดเตเดเดณเตเด เดฎเตเดฒเตเดฏเดเตเดเดณเตเด เดเตเดเดพเดฐเตเดฏเด เดเตเดฏเตเดฏเดพเตป เดเตเดกเต เดชเดฐเดฟเดทเตเดเดฐเดฟเดเตเดเดพเดจเดพเดเตเด. เดเตเดเตพเดเตเดเต เดเดฑเตเดฑเตเดฎเดฟเดเต เดฑเตเดกเต, เดฑเตเดฑเตเดฑเต, เดคเดพเดฐเดคเดฎเตเดฏเด เดเตปเดกเต เดธเตเดตเดพเดชเตเดชเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ เดเดตเดถเตเดฏเดฎเดพเดฃเต. เดฎเตเดฒเตเดฏเดเตเดเตพเดเตเดเต เดเดฑเตเดฑเตเดฎเดฟเดเต เดฑเตเดกเต เดเตปเดกเต เดฑเตเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ เดเดตเดถเตเดฏเดฎเดพเดฃเต. เดญเดพเดเตเดฏเดตเดถเดพเตฝ, CUDA-เดฏเดฟเตฝ, 32-, 64-เดฌเดฟเดฑเตเดฑเต เดฎเตเดฒเตเดฏเดเตเดเตพเดเตเดเตเดณเตเดณ เดฑเตเดกเต-เดฑเตเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ เด
เดต เดธเตเดตเดพเดญเดพเดตเดฟเดเดฎเดพเดฏเดฟ เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดฟเดเดคเตเดคเตเดณเด เดเดพเดฒเด เดเดฑเตเดฑเตเดฎเดฟเดเต เดเดฃเต (เดเตเดตเดเต เดเดพเดฃเตเด).
เดนเดพเดทเต เดเตเดฌเดฟเตพ เด เดตเดธเตเดฅ
เดเดฐเต เดนเดพเดทเต เดเตเดฌเดฟเดณเดฟเดฒเต เดเดฐเต เดเต-เดตเดพเดฒเตเดฏเต เดเตเดกเดฟเดเตเดเตเด เดจเดพเดฒเต เดธเดเดธเตเดฅเดพเดจเดเตเดเดณเดฟเตฝ เดเดจเตเดจเต เดเดฃเตเดเดพเดฏเดฟเดฐเดฟเดเตเดเดพเด:
- เดคเดพเดเตเดเตเดฒเตเด เดฎเตเดฒเตเดฏเดตเตเด เดถเตเดจเตเดฏเดฎเดพเดฃเต. เด เด เดตเดธเตเดฅเดฏเดฟเตฝ, เดนเดพเดทเต เดเตเดฌเดฟเตพ เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเต.
- เดเต เดเดดเตเดคเดฟเดฏเดฟเดเตเดเตเดฃเตเดเต, เดชเดเตเดทเต เดฎเตเดฒเตเดฏเด เดเดคเตเดตเดฐเต เดเดดเตเดคเดฟเดฏเดฟเดเตเดเดฟเดฒเตเดฒ. เดฎเดฑเตเดฑเตเดฐเต เดคเตเดฐเตเดกเต เดจเดฟเดฒเดตเดฟเตฝ เดกเดพเดฑเตเดฑ เดตเดพเดฏเดฟเดเตเดเตเดจเตเดจเตเดฃเตเดเตเดเตเดเดฟเตฝ, เด เดคเต เดถเตเดจเตเดฏเดฎเดพเดฏเดฟ เดฎเดเดเตเดเตเดจเตเดจเต. เดเดคเต เดธเดพเดงเดพเดฐเดฃเดฎเดพเดฃเต, เดจเดฟเตผเดตเตเดตเดนเดฃเดคเตเดคเดฟเดจเตเดฑเต เดฎเดฑเตเดฑเตเดฐเต เดคเตเดฐเตเดกเต เดเตเดฑเดเตเดเต เดฎเตเดฎเตเดชเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดฟเดฐเตเดจเตเดจเตเดเตเดเดฟเตฝ เดเดคเตเดคเดจเตเดจเต เดธเดเดญเดตเดฟเดเตเดเตเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดเดเตเดเตพ เดเดฐเต เดธเดฎเดพเดจเตเดคเดฐ เดกเดพเดฑเตเดฑเดพ เดเดเดจเดฏเตเดเตเดเตเดฑเดฟเดเตเดเดพเดฃเต เดธเดเดธเดพเดฐเดฟเดเตเดเตเดจเตเดจเดคเต.
- เดเตเดฏเตเด เดฎเตเดฒเตเดฏเดตเตเด เดฐเตเดเดชเตเดชเตเดเตเดคเตเดคเดฟเดฏเดฟเดเตเดเตเดฃเตเดเต.
- เดจเดฟเตผเดตเตเดตเดนเดฃเดคเตเดคเดฟเดจเตเดฑเต เดฎเดฑเตเดฑเต เดคเตเดฐเตเดกเตเดเตพเดเตเดเต เดฎเตเดฒเตเดฏเด เดฒเดญเตเดฏเดฎเดพเดฃเต, เดชเดเตเดทเต เดเต เดเดคเตเดตเดฐเต เดเดฒเตเดฒ. CUDA เดชเตเดฐเตเดเตเดฐเดพเดฎเดฟเดเดเต เดฎเตเดกเดฒเดฟเดจเต เด เดฏเดเตเด เดฎเตเดฎเตเดฎเดฑเดฟ เดฎเตเดกเตฝ เดเดณเตเดณเดคเดฟเดจเดพเตฝ เดเดคเต เดธเดเดญเดตเดฟเดเตเดเดพเด. เดเดคเต เดธเดพเดงเดพเดฐเดฃเดฎเดพเดฃเต; เดเดคเต เดธเดพเดนเดเดฐเตเดฏเดคเตเดคเดฟเดฒเตเด, เดฎเตเดฒเตเดฏเด เด เดเตเดเดจเตเดฏเดฒเตเดฒเตเดเตเดเดฟเตฝเดชเตเดชเตเดฒเตเด, เดเต เดเดชเตเดชเตเดดเตเด เดถเตเดจเตเดฏเดฎเดพเดฃเต.
เดเดฐเต เดชเตเดฐเดงเดพเดจ เดจเตเดฏเตเดจเตปเดธเต, เดเต เดธเตเดฒเตเดเตเดเดฟเดฒเตเดเตเดเต เดเดดเตเดคเดฟเดเตเดเดดเดฟเดเตเดเดพเตฝ, เด เดคเต เดเดจเดฟ เดจเตเดเตเดเดฟเดฒเตเดฒ - เดเต เดเดฒเตเดฒเดพเดคเดพเดเตเดเดฟเดฏเดพเดฒเตเด, เดเดเตเดเตพ เดเดคเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเต เดเตเดตเดเต เดธเดเดธเดพเดฐเดฟเดเตเดเตเด.
เดนเดพเดทเต เดเตเดฌเดฟเตพ เดเตเดกเต เด เดฏเดเตเด เดเตผเดกเตผ เดฎเตเดฎเตเดฎเดฑเดฟ เดฎเตเดกเดฒเตเดเดณเดฟเตฝ เดชเตเดฒเตเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต, เด เดคเดฟเตฝ เดฎเตเดฎเตเดฎเดฑเดฟ เดตเดพเดฏเดฟเดเตเดเตเดเดฏเตเด เดเดดเตเดคเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจ เดเตเดฐเดฎเด เด เดเตเดเดพเดคเดฎเดพเดฃเต. เดเดฐเต เดนเดพเดทเต เดเตเดฌเดฟเดณเดฟเดฒเต เดเตปเดธเตเตผเดทเตป, เดฒเตเดเตเดเตเด เดชเตเดชเต, เดกเดฟเดฒเตเดฑเตเดฑเต เดเดจเตเดจเดฟเดต เดจเตเดเตเดเตเดฎเตเดชเตเตพ, เดเดฐเต เดเต-เดตเดพเดฒเตเดฏเต เดเตเดกเดฟเดฏเตเด เดฎเตเดเดณเดฟเตฝ เดตเดฟเดตเดฐเดฟเดเตเด เดจเดพเดฒเต เดธเตเดฑเตเดฑเตเดฑเตเดฑเตเดเดณเดฟเตฝ เดเดจเตเดจเดฟเดฒเดพเดฃเตเดจเตเดจเต เดเตผเดฎเตเดฎเดฟเดเตเดเตเด.
เดเดฐเต เดนเดพเดทเต เดเตเดฌเดฟเดณเดฟเตฝ เดเตเตผเดเตเดเตเดจเตเดจเต
เดเดฐเต เดนเดพเดทเต เดเตเดฌเดฟเดณเดฟเดฒเตเดเตเดเต เดเต-เดตเดพเดฒเตเดฏเต เดเตเดกเดฟเดเตพ เดเตเตผเดเตเดเตเดจเตเดจ CUDA เดซเดเดเตโเดทเตป เดเดคเตเดชเตเดฒเต เดเดพเดฃเดชเตเดชเตเดเตเดจเตเดจเต:
void gpu_hashtable_insert(KeyValue* hashtable, uint32_t key, uint32_t value)
{
uint32_t slot = hash(key);
while (true)
{
uint32_t prev = atomicCAS(&hashtable[slot].key, kEmpty, key);
if (prev == kEmpty || prev == key)
{
hashtable[slot].value = value;
break;
}
slot = (slot + 1) & (kHashTableCapacity-1);
}
}
เดเดฐเต เดเต เดเตเตผเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดเตเตผเดคเตเดค เดเตเดฏเตเดเต เดนเดพเดทเดฟเตฝ เดคเตเดเดเตเดเตเดจเตเดจ เดนเดพเดทเต เดเตเดฌเดฟเตพ เด เดฑเตเดฏเดฟเดฒเตเดเต เดเตเดกเต เดเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต. เด เดฑเตเดฏเดฟเดฒเต เดเดฐเต เดธเตเดฒเตเดเตเดเตเด เด เดธเตเดฒเตเดเตเดเดฟเดฒเต เดเตเดฏเต เดถเตเดจเตเดฏเดฎเดพเดฏเดฟ เดคเดพเดฐเดคเดฎเตเดฏเด เดเตเดฏเตเดฏเตเดจเตเดจ เดเดฐเต เดเดฑเตเดฑเตเดฎเดฟเดเต เดคเดพเดฐเดคเดฎเตเดฏเด เดเตปเดกเต เดธเตเดตเดพเดชเตเดชเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด เดจเดเดคเตเดคเตเดจเตเดจเต. เดชเตเดฐเตเดคเตเดคเดเตเดเตเดเต เดเดฃเตเดเตเดคเตเดคเดฟเดฏเดพเตฝ, เดเตเตผเดคเตเดค เดเต เดเดชเดฏเตเดเดฟเดเตเดเต เดธเตเดฒเตเดเตเดเดฟเดฒเต เดเต เด เดชเตโเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเด, เดคเตเดเตผเดจเตเดจเต เดฏเดฅเดพเตผเดคเตเดฅ เดธเตเดฒเตเดเตเดเต เดเต เดคเดฟเดฐเดฟเดเต เดจเตฝเดเตเด. เด เดเดฑเดฟเดเดฟเดจเตฝ เดเต เดถเตเดจเตเดฏเดฎเดพเดฃเตเดเตเดเดฟเตฝ เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดเตเตผเดคเตเดค เดเตเดฏเตเดฎเดพเดฏเดฟ เดชเตเดฐเตเดคเตเดคเดชเตเดชเตเดเตเดจเตเดจเตเดตเตเดเตเดเดฟเตฝ, เดเตเดกเต เดเตเตผเดเตเดเตเดจเตเดจเดคเดฟเดจเต เด เดจเตเดฏเตเดเตเดฏเดฎเดพเดฏ เดเดฐเต เดธเตเดฒเตเดเตเดเต เดเดฃเตเดเตเดคเตเดคเตเดเดฏเตเด เดธเตเดฒเตเดเตเดเดฟเดฒเตเดเตเดเต เดคเดฟเดฐเตเดเดฟเดฏ เดฎเตเดฒเตเดฏเด เดเตเตผเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด.
เดเดฐเต เดเตเตผเดฃเตฝ เดเตเดณเดฟเดฒเดพเดฃเตเดเตเดเดฟเตฝ gpu_hashtable_insert()
เดเดฐเต เดเต เดเดชเดฏเตเดเดฟเดเตเดเต เดเดจเตเดจเดฟเดฒเดงเดฟเดเด เดเดเดเดเตเดเตพ เดเดฃเตเดเต, เดคเตเดเตผเดจเตเดจเต เด
เดตเดฏเตเดเต เดเดคเตเดเตเดเดฟเดฒเตเด เดฎเตเดฒเตเดฏเดเตเดเตพ เดเต เดธเตเดฒเตเดเตเดเดฟเตฝ เดเดดเตเดคเดพเด. เดเดคเต เดธเดพเดงเดพเดฐเดฃเดฎเดพเดฏเดฟ เดเดฃเดเตเดเดพเดเตเดเดชเตเดชเตเดเตเดจเตเดจเต: เดเตเดณเดฟเดจเดฟเดเดฏเดฟเตฝ เดเดฐเต เดเต-เดฎเตเดฒเตเดฏเด เดเดดเตเดคเตเดจเตเดจเดคเต เดตเดฟเดเดฏเดฟเดเตเดเตเด, เดเดจเตเดจเดพเตฝ เดเดตเดฏเตเดฒเตเดฒเดพเด เดธเดฎเดพเดจเตเดคเดฐเดฎเดพเดฏเดฟ เดจเดเดเตเดเตเดจเตเดจเดคเดฟเดจเดพเตฝ, เดเดคเต เดฎเตเดฎเตเดฎเดฑเดฟ เดฑเตเดฑเตเดฑเดพเดฃเต เด
เดตเดธเดพเดจเดคเตเดคเตเดคเต เดเดจเตเดจเต เดจเดฎเตเดเตเดเต เดชเตเดฐเดตเดเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเดฟเดฒเตเดฒ.
เดนเดพเดทเต เดเตเดฌเดฟเตพ เดฒเตเดเตเดเตเด เดชเตเดชเต
เดเตเดเตพ เดคเดฟเดฐเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเตเดกเต:
uint32_t gpu_hashtable_lookup(KeyValue* hashtable, uint32_t key)
{
uint32_t slot = hash(key);
while (true)
{
if (hashtable[slot].key == key)
{
return hashtable[slot].value;
}
if (hashtable[slot].key == kEmpty)
{
return kEmpty;
}
slot = (slot + 1) & (kHashTableCapacity - 1);
}
}
เดเดฐเต เดชเดเตเดเดฟเดเดฏเดฟเตฝ เดธเดเดญเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดเตเดฏเตเดเต เดฎเตเดฒเตเดฏเด เดเดฃเตเดเตเดคเตเดคเดพเตป, เดเดเตเดเตพ เดคเดฟเดฐเดฏเตเดจเตเดจ เดเตเดฏเตเดเต เดนเดพเดทเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจ เด เดฑเตเดฏเดฟเดฒเตเดเต เดเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต. เดเดฐเต เดธเตเดฒเตเดเตเดเดฟเดฒเตเด, เดเดเตเดเตพ เดคเดฟเดฐเดฏเตเดจเตเดจเดคเต เดเตเดฏเดพเดฃเต เดเดจเตเดจเต เดเดเตเดเตพ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเต, เด เดเตเดเดจเตเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เดเดเตเดเตพ เด เดคเดฟเดจเตเดฑเต เดฎเตเดฒเตเดฏเด เดคเดฟเดฐเดฟเดเต เดจเตฝเดเตเด. เดเต เดถเตเดจเตเดฏเดฎเดพเดฃเต เดเดจเตเดจเตเด เดเดเตเดเตพ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเต, เด เดเตเดเดจเตเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เดเดเตเดเตพ เดคเดฟเดฐเดฏเตฝ เดจเดฟเตผเดคเตเดคเตเดจเตเดจเต.
เดจเดฎเตเดเตเดเต เดเต เดเดฃเตเดเตเดคเตเดคเดพเตป เดเดดเดฟเดฏเตเดจเตเดจเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดเตเดกเต เดเดฐเต เดถเตเดจเตเดฏเดฎเดพเดฏ เดฎเตเดฒเตเดฏเด เดจเตฝเดเตเดจเตเดจเต.
เด เดธเตเตผเดเตเดเต เดเดชเตเดชเดฑเตเดทเดจเตเดเดณเตเดฒเตเดฒเดพเด เดเตปเดธเตเตผเดทเดจเตเดเดณเดฟเดฒเตเดเตเดฏเตเด เดเดฒเตเดฒเดพเดคเดพเดเตเดเดฒเดฟเดฒเตเดเตเดฏเตเด เดเดฐเตเดธเดฎเดฏเด เดจเดเดคเตเดคเดพเด. เดชเดเตเดเดฟเดเดฏเดฟเดฒเต เดเดฐเต เดเตเดกเดฟเดเตเดเตเด เดเดดเตเดเตเดเดฟเดจเดพเดฏเดฟ เดฎเตเดเดณเดฟเตฝ เดตเดฟเดตเดฐเดฟเดเตเด เดจเดพเดฒเต เด เดตเดธเตเดฅเดเดณเดฟเตฝ เดเดจเตเดจเต เดเดฃเตเดเดพเดฏเดฟเดฐเดฟเดเตเดเตเด.
เดเดฐเต เดนเดพเดทเต เดชเดเตเดเดฟเดเดฏเดฟเตฝ เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดจเตเดจเต
เดเตเดเตพ เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเตเดกเต:
void gpu_hashtable_delete(KeyValue* hashtable, uint32_t key, uint32_t value)
{
uint32_t slot = hash(key);
while (true)
{
if (hashtable[slot].key == key)
{
hashtable[slot].value = kEmpty;
return;
}
if (hashtable[slot].key == kEmpty)
{
return;
}
slot = (slot + 1) & (kHashTableCapacity - 1);
}
}
เดเดฐเต เดเต เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดจเตเดจเดคเต เด
เดธเดพเดงเดพเดฐเดฃเดฎเดพเดฏ เดฐเตเดคเดฟเดฏเดฟเดฒเดพเดฃเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเต: เดเดเตเดเตพ เดเต เดชเดเตเดเดฟเดเดฏเดฟเตฝ เดเดชเตเดเตเดทเดฟเดเตเดเต เด
เดคเดฟเดจเตเดฑเต เดฎเตเดฒเตเดฏเด (เดเต เดคเดจเตเดจเต เด
เดฒเตเดฒ) เดถเตเดจเตเดฏเดฎเดพเดฏเดฟ เด
เดเดฏเดพเดณเดชเตเดชเตเดเตเดคเตเดคเตเดจเตเดจเต. เด เดเตเดกเต เดตเดณเดฐเต เดธเดพเดฎเตเดฏเดฎเตเดณเตเดณเดคเดพเดฃเต lookup()
, เดเดฐเต เดเตเดฏเดฟเตฝ เดเดฐเต เดชเตเดฐเตเดคเตเดคเด เดเดฃเตเดเตเดคเตเดคเตเดฎเตเดชเตเตพ, เด
เดคเต เด
เดคเดฟเดจเตเดฑเต เดฎเตเดฒเตเดฏเด เดถเตเดจเตเดฏเดฎเดพเดเตเดเตเดจเตเดจเต.
เดฎเตเดเดณเดฟเตฝ เดธเตเดเดฟเดชเตเดชเดฟเดเตเดเดคเตเดชเตเดฒเต, เดเดฐเต เดเต เดเดฐเต เดธเตเดฒเตเดเตเดเดฟเดฒเตเดเตเดเต เดเดดเตเดคเดฟเดเตเดเดดเดฟเดเตเดเดพเตฝ, เด เดคเต เดเดจเดฟ เดจเตเดเตเดเดฟเดฒเตเดฒ. เดชเดเตเดเดฟเดเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฐเต เดเดเดเด เดเดฒเตเดฒเดพเดคเดพเดเตเดเดฟเดฏเดพเดฒเตเด, เดเต เด เดคเตเดชเดเดฟ เดจเดฟเดฒเดจเดฟเตฝเดเตเดเตเด, เด เดคเดฟเดจเตเดฑเต เดฎเตเดฒเตเดฏเด เดถเตเดจเตเดฏเดฎเดพเดเตเด. เดธเตเดฒเตเดเตเดเต เดฎเตเดฒเตเดฏเดคเตเดคเดฟเดจเดพเดฏเดฟ เดเดฐเต เดเดฑเตเดฑเตเดฎเดฟเดเต เดฑเตเดฑเตเดฑเต เดเดชเตเดชเดฑเตเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเตเดฃเตเดเดคเดฟเดฒเตเดฒ เดเดจเตเดจเดพเดฃเต เดเดคเดฟเดจเตผเดคเตเดฅเด, เดเดพเดฐเดฃเด เดจเดฟเดฒเดตเดฟเดฒเต เดฎเตเดฒเตเดฏเด เดถเตเดจเตเดฏเดฎเดพเดฃเต เด เดฒเตเดฒเดฏเต เดเดจเตเดจเดคเต เดชเตเดฐเดถเตเดจเดฎเดฒเตเดฒ - เด เดคเต เดเดชเตเดชเตเดดเตเด เดถเตเดจเตเดฏเดฎเดพเดเตเด.
เดเดฐเต เดนเดพเดทเต เดเตเดฌเดฟเตพ เดตเดฒเตเดชเตเดชเด เดฎเดพเดฑเตเดฑเตเดจเตเดจเต
เดเดฐเต เดตเดฒเดฟเดฏ เดเตเดฌเดฟเตพ เดธเตเดทเตเดเดฟเดเตเดเต เดชเดดเดฏ เดเตเดฌเดฟเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดถเตเดจเตเดฏเดฎเดฒเตเดฒเดพเดคเตเดค เดเดเดเดเตเดเตพ เด เดคเดฟเตฝ เดเตเตผเดคเตเดคเตเดเตเดฃเตเดเต เดจเดฟเดเตเดเตพเดเตเดเต เดเดฐเต เดนเดพเดทเต เดเตเดฌเดฟเดณเดฟเดจเตเดฑเต เดตเดฒเตเดชเตเดชเด เดฎเดพเดฑเตเดฑเดพเด. เดธเดพเดฎเตเดชเดฟเตพ เดเตเดกเต เดฒเดณเดฟเดคเดฎเดพเดเตเดเดพเตป เดเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเดคเดฟเดจเดพเตฝ เดเดพเตป เด เดชเตเดฐเดตเตผเดคเตเดคเดจเด เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเดฟเดฏเดฟเดฒเตเดฒ. เดเตเดเดพเดคเต, CUDA เดชเตเดฐเตเดเตเดฐเดพเดฎเตเดเดณเดฟเตฝ, เดฎเตเดฎเตเดฎเดฑเดฟ เด เดฒเตเดเตเดเตเดทเตป CUDA เดเตเตผเดฃเดฒเดฟเดจเตเดเตเดเดพเตพ เดนเตเดธเตเดฑเตเดฑเต เดเตเดกเดฟเดฒเดพเดฃเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเต.
เดฒเตเดเดจเดคเตเดคเดฟเตฝ
เดฎเดคเตเดธเดฐเดถเตเดทเดฟ
เดฎเตเดเดณเดฟเดฒเตเดณเตเดณ เดซเดเดเตโเดทเตป เดเตเดกเต เดธเตโเดจเดฟเดชเตเดชเตเดฑเตเดฑเตเดเดณเดฟเตฝ gpu_hashtable_insert()
, _lookup()
ะธ _delete()
เดเดฐเต เดธเดฎเดฏเด เดเดฐเต เดเต-เดฎเตเดฒเตเดฏเด เดเตเดเดฟ เดชเตเดฐเตเดธเดธเตเดธเต เดเตเดฏเตเดฏเตเด. เดเดชเตเดชเด เดคเดพเดดเตเดฏเตเด gpu_hashtable_insert()
, _lookup()
ะธ _delete()
เดเตเดกเดฟเดเดณเตเดเต เดเดฐเต เดจเดฟเดฐ เดธเดฎเดพเดจเตเดคเดฐเดฎเดพเดฏเดฟ เดชเตเดฐเตเดธเดธเตเดธเต เดเตเดฏเตเดฏเตเด, เดเดฐเต เดเตเดกเดฟเดฏเตเด เดชเตเดฐเดคเตเดฏเตเด เดเดฟเดชเดฟเดฏเต เดเดเตเดธเดฟเดเตเดฏเตเดทเตป เดคเตเดฐเตเดกเดฟเตฝ:
// CPU code to invoke the CUDA kernel on the GPU
uint32_t threadblocksize = 1024;
uint32_t gridsize = (numkvs + threadblocksize - 1) / threadblocksize;
gpu_hashtable_insert_kernel<<<gridsize, threadblocksize>>>(hashtable, kvs, numkvs);
// GPU code to process numkvs key/values in parallel
void gpu_hashtable_insert_kernel(KeyValue* hashtable, const KeyValue* kvs, unsigned int numkvs)
{
unsigned int threadid = blockIdx.x*blockDim.x + threadIdx.x;
if (threadid < numkvs)
{
gpu_hashtable_insert(hashtable, kvs[threadid].key, kvs[threadid].value);
}
}
เดฒเตเดเตเดเต-เดฑเตเดธเดฟเดธเตเดฑเตเดฑเดจเตเดฑเต เดนเดพเดทเต เดเตเดฌเดฟเตพ เดเตบเดเดฑเดจเตเดฑเต เดเตปเดธเตเตผเดเตเดเตเดเตพ, เดฒเตเดเตเดเดชเตเดชเตเดเตพ, เดเดฒเตเดฒเดพเดคเดพเดเตเดเดฒเตเดเตพ เดเดจเตเดจเดฟเดตเดฏเต เดชเดฟเดจเตเดคเตเดฃเดฏเตเดเตเดเตเดจเตเดจเต. เดเต-เดฎเตเดฒเตเดฏเด เดเตเดกเดฟเดเตพ เดเดฒเตเดฒเดพเดฏเตเดชเตเดชเตเดดเตเด เดจเดพเดฒเต เด เดตเดธเตเดฅเดเดณเดฟเตฝ เดเดจเตเดจเดฟเดฒเดพเดฏเดคเดฟเดจเดพเตฝ เดเตเดเตพ เดเดฒเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒ, เดตเตเดฏเดคเตเดฏเดธเตเดค เดคเดฐเด เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ เดเดฐเตเดธเดฎเดฏเด เดเดชเดฏเตเดเดฟเดเตเดเตเดฎเตเดชเตเดดเตเด เดชเดเตเดเดฟเด เดถเดฐเดฟเดฏเดพเดฃเตเดจเตเดจเต เดเดฑเดชเตเดชเต เดจเตฝเดเตเดจเตเดจเต.
เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด, เดเดเตเดเตพ เดเดฐเต เดเตเดเตเดเด เดเตพเดชเตเดชเตเดเตเดคเตเดคเดฒเตเดเดณเตเด เดเดฒเตเดฒเดพเดคเดพเดเตเดเดฒเตเด เดธเดฎเดพเดจเตเดคเดฐเดฎเดพเดฏเดฟ เดชเตเดฐเตเดธเดธเตเดธเต เดเตเดฏเตเดฏเตเดจเตเดจเตเดตเตเดเตเดเดฟเตฝ, เดเตเดเดพเดคเต เดเตเดกเดฟเดเดณเตเดเต เดเตปเดชเตเดเตเดเต เด
เดฑเตเดฏเดฟเตฝ เดคเดจเดฟเดชเตเดชเดเตผเดชเตเดชเต เดเตเดเตพ เด
เดเดเตเดเดฟเดฏเดฟเดเตเดเตเดฃเตเดเตเดเตเดเดฟเตฝ, เดเดคเต เดเตเดกเดฟเดเดณเดพเดฃเต "เดเดฏเดฟเดเตเดเตเด" เดเดจเตเดจเต เดจเดฎเตเดเตเดเต เดชเตเดฐเดตเดเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเดฟเดฒเตเดฒ-เด
เดตเดธเดพเดจเด เดนเดพเดทเต เดเตเดฌเดฟเดณเดฟเตฝ เดเดดเตเดคเดชเตเดชเตเดเตเด. เดเตเดกเดฟเดเดณเตเดเต เดเดฐเต เดเตปเดชเตเดเตเดเต เด
เดฑเต เดเดชเดฏเตเดเดฟเดเตเดเต เดเดเตเดเตพ เดเตปเดธเตเตผเดทเตป เดเตเดกเดฟเดจเต เดตเดฟเดณเดฟเดเตเดเตเดตเตเดจเตเดจเต เดชเดฑเดฏเดพเด A/0 B/1 A/2 C/3 A/4
. เดเตเดกเต เดชเตเตผเดคเตเดคเดฟเดฏเดพเดเตเดฎเตเดชเตเตพ, เดเตเดกเดฟเดเตพ B/1
ะธ C/3
เดชเดเตเดเดฟเดเดฏเดฟเตฝ เดเดฃเตเดเตเดจเตเดจเต เดเดฑเดชเตเดชเตเดจเตฝเดเตเดจเตเดจเต, เดเดจเตเดจเดพเตฝ เด
เดคเต เดธเดฎเดฏเด เดเดคเตเดเตเดเดฟเดฒเตเด เดเตเดกเดฟเดเตพ เด
เดคเดฟเตฝ เดฆเตเดถเตเดฏเดฎเดพเดเตเด A/0
, A/2
เด
เดฅเดตเดพ A/4
. เดเดคเต เดเดฐเต เดชเตเดฐเดถเตเดจเดฎเดพเดเดพเด เด
เดฒเตเดฒเตเดเตเดเดฟเตฝ เด
เดฒเตเดฒเดพเดฏเดฟเดฐเดฟเดเตเดเดพเด - เดเดคเตเดฒเตเดฒเดพเด เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเต เดเดถเตเดฐเดฏเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดเตปเดชเตเดเตเดเต เด
เดฑเตเดฏเดฟเตฝ เดคเดจเดฟเดชเตเดชเดเตผเดชเตเดชเต เดเตเดเดณเตเดจเตเดจเตเดฎเดฟเดฒเตเดฒเตเดจเตเดจเต เดจเดฟเดเตเดเตพเดเตเดเต เดฎเตเตปเดเตเดเตเดเดฟ เด
เดฑเดฟเดฏเดพเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเตเด, เด
เดฒเตเดฒเตเดเตเดเดฟเตฝ เด
เดตเดธเดพเดจเด เดเดดเตเดคเดฟเดฏ เดฎเตเดฒเตเดฏเด เดจเดฟเดเตเดเตพ เดถเตเดฐเดฆเตเดงเดฟเดเตเดเดฃเดฎเตเดจเตเดจเดฟเดฒเตเดฒ.
เดเดคเต เดจเดฟเดเตเดเตพเดเตเดเต เดเดฐเต เดชเตเดฐเดถเตเดจเดฎเดพเดฃเตเดเตเดเดฟเตฝ, เดกเตเดฏเตเดชเตเดฒเดฟเดเตเดเตเดฑเตเดฑเต เดเตเดกเดฟเดเดณเต เดตเตเดฏเดคเตเดฏเดธเตเดค CUDA เดธเดฟเดธเตเดฑเตเดฑเด เดเตเดณเตเดเดณเดพเดฏเดฟ เดตเตเตผเดคเดฟเดฐเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต. CUDA-เดฏเดฟเตฝ, เดเตเตผเดฃเดฒเดฟเดจเต เดตเดฟเดณเดฟเดเตเดเตเดจเตเดจ เดเดคเตเดฐเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดตเตเด เด
เดเตเดคเตเดค เดเตเตผเดฃเตฝ เดเตเดณเดฟเดจเต เดฎเตเดฎเตเดชเดพเดฏเดฟ เดชเตเตผเดคเตเดคเดฟเดฏเดพเดเตเด (เดเตเดฑเดเตเดเดคเต เดเดฐเต เดคเตเดฐเตเดกเดฟเดจเตเดณเตเดณเดฟเดฒเตเดเตเดเดฟเดฒเตเด. เดตเตเดฏเดคเตเดฏเดธเตเดค เดคเตเดฐเตเดกเตเดเดณเดฟเตฝ, เดเตเตผเดฃเดฒเตเดเตพ เดธเดฎเดพเดจเตเดคเดฐเดฎเดพเดฏเดฟ เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเต). เดฎเตเดเดณเดฟเดฒเตเดณเตเดณ เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ, เดจเดฟเดเตเดเตพ เดเดฐเต เดเตเตผเดฃเตฝ เดเดชเดฏเตเดเดฟเดเตเดเต เดตเดฟเดณเดฟเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ A/0 B/1 A/2 C/3
, เดฎเดฑเตเดฑเตเดจเตเดจเต เดเตเดเต A/4
, เดชเดฟเดจเตเดจเต เดคเดพเดเตเดเตเตฝ A
เดฎเตเดฒเตเดฏเด เดฒเดญเดฟเดเตเดเตเด 4
.
เดเดจเดฟ เดซเดเดเตโเดทเดจเตเดเตพ เดตเตเดฃเต เดเดจเตเดจเดคเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเต เดธเดเดธเดพเดฐเดฟเดเตเดเดพเด lookup()
ะธ delete()
เดนเดพเดทเต เดเตเดฌเดฟเดณเดฟเดฒเต เดเตเดกเดฟเดเดณเตเดเต เดเดฐเต เดจเดฟเดฐเดฏเดฟเดฒเตเดเตเดเต เดชเตเดฒเตเดฏเดฟเตป เด
เดฒเตเดฒเตเดเตเดเดฟเตฝ เด
เดธเตเดฅเดฟเดฐเดฎเดพเดฏ เดชเตเดฏเดฟเดจเตเดฑเตผ เดเดชเดฏเตเดเดฟเดเตเดเตเด.
เดเตเดฒเตเดฌเตฝ เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดชเดเตเดเดฟเดเตเด เดฎเตเดฎเตเดฎเดฑเดฟเดฏเดฟเดฒเตเดเตเดเต เดตเดพเดฏเดจเดฏเตเด เดเดดเตเดคเตเดคเตเด เดเดชเตเดฑเตเดฑเดฟเดฎเตเดธเต เดเตเดฏเตเดฏเดพเตป เดเดเดชเตเดฒเตผ เดคเดฟเดฐเดเตเดเตเดเตเดคเตเดคเตเดเตเดเดพเด... เดเตเดตเตเดกเต เดเดชเดฏเตเดเดฟเดเตเดเต เด เดเดชเตเดฑเตเดฑเดฟเดฎเตเดธเตเดทเดจเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเดเตเดเดพเด
volatile
: ... เด เดตเตเดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเตเดณเตเดณ เดเดคเต เดฑเดซเดฑเตปเดธเตเด เดเดฐเต เดฏเดฅเดพเตผเดคเตเดฅ เดฎเตเดฎเตเดฎเดฑเดฟ เดฑเตเดกเต เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดฑเตเดฑเตเดฑเต เดจเดฟเตผเดฆเตเดฆเตเดถเดคเตเดคเดฟเดฒเตเดเตเดเต เดธเดฎเดพเดนเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต.
เดถเดฐเดฟเดฏเดพเดฏ เดชเดฐเดฟเดเดฃเดจเดเตพเดเตเดเต เด
เดชเตเดเตเดท เดเดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ volatile
. เดเดเตเดธเดฟเดเตเดฏเตเดทเตป เดคเตเดฐเตเดกเต เดฎเตเดฎเตเดชเดคเตเดคเต เดฑเตเดกเต เดเดชเตเดชเดฑเตเดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดพเดทเต เดเตเดฏเตโเดค เดฎเตเดฒเตเดฏเดฎเดพเดฃเต เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเตเดเตเดเดฟเตฝ, เด
เดคเต เดเตเดฑเดเตเดเต เดเดพเดฒเดนเดฐเดฃเดชเตเดชเตเดเตเด เดตเดฟเดตเดฐเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเด. เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด, เดเดคเต เดเตเตผเดฃเตฝ เดเตเดณเดฟเดจเตเดฑเต เดเดฐเต เดจเดฟเดถเตเดเดฟเดค เดจเดฟเดฎเดฟเดทเดคเตเดคเดฟเตฝ เดนเดพเดทเต เดเตเดฌเดฟเดณเดฟเดจเตเดฑเต เดถเดฐเดฟเดฏเดพเดฏ เด
เดตเดธเตเดฅเดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดตเดฟเดตเดฐเดฎเดพเดฃเต. เดจเดฟเดเตเดเตพเดเตเดเต เดเดฑเตเดฑเดตเตเด เดชเตเดคเดฟเดฏ เดตเดฟเดตเดฐเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเดฃเดฎเตเดเตเดเดฟเตฝ, เดจเดฟเดเตเดเตพเดเตเดเต เดธเตเดเดฟเด เดเดชเดฏเตเดเดฟเดเตเดเดพเด volatile
, เดเดจเตเดจเดพเตฝ เดชเตเดฐเดเดเดจเด เดเตเดฑเตเดคเดพเดฏเดฟ เดเตเดฑเดฏเตเด: เดเดจเตเดฑเต เดชเดฐเดฟเดถเตเดงเดจเดเตพ เด
เดจเตเดธเดฐเดฟเดเตเดเต, 32 เดฆเดถเดฒเดเตเดทเด เดเดเดเดเตเดเตพ เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดฎเตเดชเตเตพ, เดตเตเดเดค 500 เดฆเดถเดฒเดเตเดทเด เดเดฒเตเดฒเดพเดคเดพเดเตเดเดฒเตเดเตพ/เดธเตเดเตเดเตปเดกเดฟเตฝ เดจเดฟเดจเตเดจเต 450 เดฆเดถเดฒเดเตเดทเด เดเดฒเตเดฒเดพเดคเดพเดเตเดเดฒเตเดเตพ/เดธเตเดเตเดเตปเดกเต เดเดฏเดฟ เดเตเดฑเดเตเดเต.
เดเดคเตเดชเดพเดฆเดจเดเตเดทเดฎเดค
64 เดฆเดถเดฒเดเตเดทเด เดฎเตเดฒเดเดเตเดเตพ เดเตเตผเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เด
เดตเดฏเดฟเตฝ 32 เดฆเดถเดฒเดเตเดทเด เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดฎเตเดณเตเดณ เดชเดฐเดฟเดถเตเดงเดจเดฏเดฟเตฝ, เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดฎเดคเตเดธเดฐเด std::unordered_map
เดเดฟเดชเดฟเดฏเตเดตเดฟเดจเต เดซเดฒเดคเตเดคเดฟเตฝ เดนเดพเดทเต เดเตเดฌเดฟเตพ เดเดฒเตเดฒ:
std::unordered_map
70 ms เดเตเดฒเดตเดดเดฟเดเตเดเต เดฎเตเดฒเดเดเตเดเตพ เดเตเตผเดเตเดเตเดเดฏเตเด เดจเตเดเตเดเด เดเตเดฏเตเดฏเตเดเดฏเตเด เดคเตเดเตผเดจเตเดจเต เด
เดตเดฏเต เดธเตเดตเดคเดจเตเดคเตเดฐเดฎเดพเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดคเต unordered_map
(เดฆเดถเดฒเดเตเดทเดเตเดเดฃเดเตเดเดฟเดจเต เดฎเตเดฒเดเดเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดฐเดเตเดทเดชเตเดชเตเดเดพเตป เดตเดณเดฐเตเดฏเดงเดฟเดเด เดธเดฎเดฏเดฎเตเดเตเดเตเดเตเด, เดเดพเดฐเดฃเด เดเดณเตเดณเดฟเตฝ unordered_map
เดเดจเตเดจเดฟเดฒเดงเดฟเดเด เดฎเตเดฎเตเดฎเดฑเดฟ เด
เดฒเตเดเตเดเตเดทเดจเตเดเตพ เดจเดเดคเตเดคเตเดจเตเดจเต). เดธเดคเตเดฏเดธเดจเตเดงเดฎเดพเดฏเดฟ เดชเดฑเดเตเดเดพเตฝ, std:unordered_map
เดคเดฟเดเดเตเดเตเด เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏ เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเดเตเดเตพ. เดเดคเต เดจเดฟเตผเดตเตเดตเดนเดฃเดคเตเดคเดฟเดจเตเดฑเต เดเดฐเต เดธเดฟเดชเดฟเดฏเต เดคเตเดฐเตเดกเต เดเดฃเต, เดเดคเต เดตเดฒเตเดชเตเดชเดคเตเดคเดฟเดฒเตเดฎเตเดณเตเดณ เดเต-เดฎเตเดฒเตเดฏเดเตเดเดณเต เดชเดฟเดจเตเดคเตเดฃเดฏเตเดเตเดเตเดจเตเดจเต, เดเดฏเตผเดจเตเดจ เดเดชเดฏเตเด เดจเดฟเดฐเดเตเดเดฟเตฝ เดฎเดฟเดเดเตเด เดชเตเดฐเดเดเดจเด เดจเดเดคเตเดคเตเดจเตเดจเต, เดเดจเตเดจเดฟเดฒเดงเดฟเดเด เดเดฒเตเดฒเดพเดคเดพเดเตเดเดฒเตเดเตพเดเตเดเต เดถเตเดทเด เดธเตเดฅเดฟเดฐเดคเดฏเตเดณเตเดณ เดชเตเดฐเดเดเดจเด เดเดพเดฃเดฟเดเตเดเตเดจเตเดจเต.
GPU-เดจเตเด เดเดจเตเดฑเตผ-เดชเตเดฐเตเดเตเดฐเดพเด เดเดถเดฏเดตเดฟเดจเดฟเดฎเดฏเดคเตเดคเดฟเดจเตเดฎเตเดณเตเดณ เดนเดพเดทเต เดเตเดฌเดฟเดณเดฟเดจเตเดฑเต เดฆเตเตผเดเตเดฏเด 984 ms เดเดฏเดฟเดฐเตเดจเตเดจเต. เดเตเดฌเดฟเตพ เดฎเตเดฎเตเดฎเดฑเดฟเดฏเดฟเตฝ เดธเตเดฅเดพเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เด เดคเต เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด (เดเดฐเต เดคเดตเดฃ 1 GB เดฎเตเดฎเตเดฎเดฑเดฟ เด เดจเตเดตเดฆเดฟเดเตเดเตฝ, CUDA-เดฏเดฟเตฝ เดเตเดฑเดเตเดเต เดธเดฎเดฏเดฎเตเดเตเดเตเดเตเด), เดเดเดเดเตเดเตพ เดเตเตผเดเตเดเตเดเดฏเตเด เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดเดฏเตเด, เด เดตเดฏเตเดเตเดเต เดฎเตเดเดณเดฟเตฝ เดเดตเตผเดคเตเดคเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจ เดธเดฎเดฏเด เดเดคเดฟเตฝ เดเตพเดชเตเดชเตเดเตเดจเตเดจเต. เดตเตเดกเดฟเดฏเต เดเดพเตผเดกเต เดฎเตเดฎเตเดฎเดฑเดฟเดฏเดฟเดฒเตเดเตเดเตเดณเตเดณ เดเดฒเตเดฒเดพ เดชเดเตผเดชเตเดชเตเดเดณเตเด เดเดฃเดเตเดเดฟเดฒเตเดเตเดเตเดเตเดจเตเดจเต.
เดนเดพเดทเต เดเตเดฌเดฟเตพ เดคเดจเตเดจเต เดชเตเตผเดคเตเดคเดฟเดฏเดพเดเตเดเดพเตป 271 ms เดเดเตเดคเตเดคเต. เดตเตเดกเดฟเดฏเต เดเดพเตผเดกเต เดเดเดเดเตเดเตพ เดเตเตผเดเตเดเตเดเดฏเตเด เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจ เดธเดฎเดฏเด เดเดคเดฟเตฝ เดเตพเดชเตเดชเตเดเตเดจเตเดจเต, เดเตเดเดพเดคเต เดฎเตเดฎเตเดฎเดฑเดฟเดฏเดฟเดฒเตเดเตเดเต เดชเดเตผเดคเตเดคเตเดจเตเดจเดคเดฟเดจเตเด เดซเดฒเดฎเดพเดฏเตเดฃเตเดเดพเดเตเดจเตเดจ เดชเดเตเดเดฟเดเดฏเดฟเตฝ เดเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เดเตเดฒเดตเดดเดฟเดเตเด เดธเดฎเดฏเด เดเดฃเดเตเดเดฟเดฒเตเดเตเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒ. เดเดฟเดชเดฟเดฏเต เดเตเดฌเดฟเตพ เดฆเตเตผเดเดเดพเดฒเด เดจเดฟเดฒเดจเดฟเตฝเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดตเตเดกเดฟเดฏเต เดเดพเตผเดกเดฟเดจเตเดฑเต เดฎเตเดฎเตเดฎเดฑเดฟเดฏเดฟเตฝ เดนเดพเดทเต เดเตเดฌเดฟเตพ เดฎเตเดดเตเดตเดจเดพเดฏเตเด เด เดเดเตเดเดฟเดฏเดฟเดเตเดเตเดฃเตเดเตเดเตเดเดฟเตฝ (เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดฎเดฑเตเดฑเต เดเดฟเดชเดฟเดฏเต เดเตเดกเต เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดนเดพเดทเต เดเตเดฌเดฟเตพ เดธเตเดทเตเดเดฟเดเตเดเดพเตป, เดธเตเตปเดเตเดฐเตฝ เดชเตเดฐเตเดธเดธเตผ เด เดฒเตเดฒ), เดคเตเดเตผเดจเตเดจเต เดชเดฐเดฟเดถเตเดงเดจ เดซเดฒเด เดชเตเดฐเดธเดเตเดคเดฎเดพเดฃเต.
เดเดฏเตผเดจเตเดจ เดคเตเดฐเตเดชเตเดเตเดเตเด เดธเดเตเดตเดฎเดพเดฏ เดธเดฎเดพเดจเตเดคเดฐเดตเตฝเดเตเดเดฐเดฃเดตเตเด เดเดพเดฐเดฃเด เดเดฐเต เดตเตเดกเดฟเดฏเต เดเดพเตผเดกเดฟเดจเตเดณเตเดณ เดนเดพเดทเต เดเตเดฌเดฟเตพ เดเดฏเตผเดจเตเดจ เดชเตเดฐเดเดเดจเด เดชเตเดฐเดเดเดฎเดพเดเตเดเตเดจเตเดจเต.
เด เดธเตเดเดฐเตเดฏเดเตเดเตพ
เดนเดพเดทเต เดเตเดฌเดฟเตพ เดเตผเดเตเดเดฟเดเตเดเตเดเดฑเดฟเดจเต เด เดฑเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดฃเตเด เดเดฟเดฒ เดชเตเดฐเดถเตเดจเดเตเดเดณเตเดฃเตเดเต:
- เดฒเตเดจเดฟเดฏเตผ เดชเตเดฐเตเดฌเดฟเดเดเต เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดเดเต เดคเดเดธเตเดธเดชเตเดชเตเดเตเดคเตเดคเตเดจเตเดจเต, เดเดคเต เดเตเดฌเดฟเดณเดฟเดฒเต เดเตเดเตพ เดชเตเตผเดฃเตเดฃเดคเดฏเดฟเตฝ เดเตเดฑเดตเดพเดฏเดฟ เดธเตเดฅเดพเดชเดฟเดเตเดเดพเตป เดเดพเดฐเดฃเดฎเดพเดเตเดจเตเดจเต.
- เดซเดเดเตเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเต เดเตเดเตพ เดจเตเดเตเดเด เดเตเดฏเตเดฏเดชเตเดชเตเดเตเดจเตเดจเดฟเดฒเตเดฒ
delete
เดเดพเดฒเดเตเดฐเดฎเตเดฃ เด เดตเตผ เดฎเตเดถ เด เดฒเดเตเดเตเดฒเดชเตเดชเตเดเตเดคเตเดคเตเดจเตเดจเต.
เดคเตฝเดซเดฒเดฎเดพเดฏเดฟ, เดเดฐเต เดนเดพเดทเต เดเตเดฌเดฟเดณเดฟเดจเตเดฑเต เดชเตเดฐเดเดเดจเด เดเตเดฐเดฎเตเดฃ เดเตเดฑเดฏเตเดจเตเดจเต, เดชเตเดฐเดคเตเดฏเตเดเดฟเดเตเดเตเด เด เดคเต เดตเดณเดฐเตเดเตเดเดพเดฒเด เดจเดฟเดฒเดจเดฟเตฝเดเตเดเตเดเดฏเตเด เดจเดฟเดฐเดตเดงเดฟ เดเตพเดชเตเดชเตเดเตเดคเตเดคเดฒเตเดเดณเตเด เดเดฒเตเดฒเดพเดคเดพเดเตเดเดฒเตเดเดณเตเด เดเดฃเตเดเตเดเตเดเดฟเตฝ. เด เดชเตเดฐเดพเดฏเตเดฎเดเตพ เดฒเดเตเดเดฐเดฟเดเตเดเดพเดจเตเดณเตเดณ เดเดฐเต เดฎเดพเตผเดเตเดเด, เดตเดณเดฐเต เดเตเดฑเดเตเด เดเดชเดฏเตเด เดจเดฟเดฐเดเตเดเตเดณเตเดณ เดเดฐเต เดชเตเดคเดฟเดฏ เดเตเดฌเดฟเดณเดฟเดฒเตเดเตเดเต เดฑเตเดนเดพเดทเต เดเตเดฏเตเดฏเตเดเดฏเตเด เดฑเตเดนเดพเดทเดฟเดเดเต เดธเดฎเดฏเดคเตเดคเต เดจเตเดเตเดเด เดเตเดฏเตเดค เดเตเดเตพ เดซเดฟเตฝเดเตเดเตผ เดเตเดฏเตเดฏเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด เดเดจเตเดจเดคเดพเดฃเต.
เดตเดฟเดตเดฐเดฟเดเตเด เดชเตเดฐเดถเตโเดจเดเตเดเตพ เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดเดพเตป 128 เดฆเดถเดฒเดเตเดทเด เดธเตเดฒเตเดเตเดเตเดเตพ (เดเดเดฆเตเดถเด 4 เดเดชเดฏเตเด เดจเดฟเดฐเดเตเดเต) เดชเตเดฐเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเต เดตเดฐเต 124 เดฆเดถเดฒเดเตเดทเด เดฎเตเดฒเดเดเตเดเดณเตเดณเตเดณ เดเดฐเต เดเตเดฌเดฟเตพ เดธเตเดทเตโเดเดฟเดเตเดเดพเดจเตเด 0,96 เดฆเดถเดฒเดเตเดทเด เดฎเตเดฒเดเดเตเดเดณเดฟเดฒเตเดเต เดฒเตเดชเตเดชเต เดเตเดฏเตเดฏเดพเดจเตเด เดเดพเตป เดฎเตเดเดณเดฟเดฒเต เดเตเดกเต เดเดชเดฏเตเดเดฟเดเตเดเตเด. เดซเดฒ เดชเดเตเดเดฟเด เดเดคเดพ, เดเดฐเต เดตเดฐเดฟเดฏเตเด เดเดฐเต เดนเดพเดทเต เดเตเดฌเดฟเดณเดฟเตฝ 4 เดฆเดถเดฒเดเตเดทเด เดชเตเดคเดฟเดฏ เดเดเดเดเตเดเตพ เดเตเตผเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ CUDA เดเตเตผเดฃเตฝ เดเตเดณเดพเดฃเต:
เดเดชเดฏเตเด เดจเดฟเดฐเดเตเดเต
เดเตพเดชเตเดชเตเดเตเดคเตเดคเตฝ เดฆเตเตผเดเตเดฏเด 4 เดเดเดเดเตเดเตพ
0,00
11,608448 ms (361,314798 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,03
11,751424 ms (356,918799 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,06
11,942592 ms (351,205515 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,09
12,081120 ms (347,178429 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,12
12,242560 ms (342,600233 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,16
12,396448 ms (338,347235 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,19
12,533024 ms (334,660176 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,22
12,703328 ms (330,173626 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,25
12,884512 ms (325,530693 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,28
13,033472 ms (321,810182 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,31
13,239296 ms (316,807174 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,34
13,392448 ms (313,184256 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,37
13,624000 ms (307,861434 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,41
13,875520 ms (302,280855 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,44
14,126528 ms (296,909756 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,47
14,399328 ms (291,284699 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,50
14,690304 ms (285,515123 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,53
15,039136 ms (278,892623 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,56
15,478656 ms (270,973402 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,59
15,985664 ms (262,379092 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,62
16,668673 ms (251,627968 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,66
17,587200 ms (238,486174 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,69
18,690048 ms (224,413765 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,72
20,278816 ms (206,831789 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,75
22,545408 ms (186,038058 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,78
26,053312 ms (160,989275 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,81
31,895008 ms (131,503463 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,84
42,103294 ms (99,619378 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,87
61,849056 ms (67,815164 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,90
105,695999 ms (39,682713 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
0,94
240,204636 ms (17,461378 เดฆเดถเดฒเดเตเดทเด เดเตเดเตพ/เดธเตเดเตเดเตปเดกเต.)
เดเดชเดฏเตเดเด เดเตเดเตเดจเตเดจเดคเดฟเดจเดจเตเดธเดฐเดฟเดเตเดเต เดชเตเดฐเดเดเดจเด เดเตเดฑเดฏเตเดจเตเดจเต. เดฎเดฟเดเตเด เดเตเดธเตเดเดณเดฟเดฒเตเด เดเดคเต เด เดญเดฟเดเดพเดฎเตเดฏเดฎเดฒเตเดฒ. เดเดฐเต เดชเตเดฐเดฏเตเดเด เดเดฐเต เดเตเดฌเดฟเดณเดฟเตฝ เดเดเดเดเตเดเตพ เดคเดฟเดฐเตเดเตเดเดฏเตเด เดชเดฟเดจเตเดจเตเดเต เด เดต เดเดชเตเดเตเดทเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเตเดตเตเดเตเดเดฟเตฝ (เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดเดฐเต เดชเตเดธเตเดคเดเดคเตเดคเดฟเดฒเต เดตเดพเดเตเดเตเดเตพ เดเดฃเตเดฃเตเดฎเตเดชเตเตพ), เดเดคเต เดเดฐเต เดชเตเดฐเดถเตเดจเดฎเดฒเตเดฒ. เดเดจเตเดจเดพเตฝ เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดฆเตเตผเดเดเดพเดฒ เดนเดพเดทเต เดเตเดฌเดฟเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเตเดตเตเดเตเดเดฟเตฝ (เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดเดฟเดคเตเดฐเดเตเดเดณเตเดเต เดถเตเดจเตเดฏเดฎเดฒเตเดฒเดพเดคเตเดค เดญเดพเดเดเตเดเตพ เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดฐเต เดเตเดฐเดพเดซเดฟเดเตเดธเต เดเดกเดฟเดฑเตเดฑเดฑเดฟเตฝ, เดเดชเดฏเตเดเตเดคเดพเดตเต เดชเดคเดฟเดตเดพเดฏเดฟ เดตเดฟเดตเดฐเดเตเดเตพ เดเตเตผเดเตเดเตเดเดฏเตเด เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต), เด เดธเตเดตเดญเดพเดตเด เดชเตเดฐเดถเตโเดจเดฎเตเดฃเตเดเดพเดเตเดเดพเด.
64 เดฆเดถเดฒเดเตเดทเด เดเตปเดธเตเตผเดเตเดเตเดเตพเดเตเดเต เดถเตเดทเด เดนเดพเดทเต เดเตเดฌเดฟเตพ เดชเตเดฐเตเดฌเดฟเดเดเต เดกเตเดชเตเดคเต เด เดณเดจเตเดจเต (เดเดชเดฏเตเด เดเดเดเด 0,5). เดถเดฐเดพเดถเดฐเดฟ เดเดดเด 0,4774 เดเดฏเดฟเดฐเตเดจเตเดจเต, เด เดคเดฟเดจเดพเตฝ เดฎเดฟเดเตเด เดเตเดเดณเตเด เดเดจเตเดจเตเดเดฟเตฝ เดธเดพเดงเตเดฏเดฎเดพเดฏ เดเดฑเตเดฑเดตเตเด เดฎเดฟเดเดเตเด เดธเตเดฒเตเดเตเดเดฟเตฝ เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดฎเดฟเดเดเตเด เดธเตเดฅเดพเดจเดคเตเดคเต เดจเดฟเดจเตเดจเต เดเดฐเต เดธเตเดฒเตเดเตเดเต เด เดเดฒเตเดฏเดพเดฏเดฟเดฐเตเดจเตเดจเต. เดถเดฌเตเดฆเดคเตเดคเดฟเดจเตเดฑเต เดชเดฐเดฎเดพเดตเดงเดฟ เดเดดเด 60 เดเดฏเดฟเดฐเตเดจเตเดจเต.
124 เดฆเดถเดฒเดเตเดทเด เดเตปเดธเตเตผเดเตเดเตเดเดณเตเดณเตเดณ เดเดฐเต เดเตเดฌเดฟเดณเดฟเตฝ เดเดพเตป เดชเตเดฐเตเดฌเดฟเดเดเต เดกเตเดชเตเดคเต เด เดณเดจเตเดจเต (เดเดชเดฏเตเด เดเดเดเด 0,97). เดถเดฐเดพเดถเดฐเดฟ เดเดดเด เดเดคเดฟเดจเดเด 10,1757 เดเดฏเดฟเดฐเตเดจเตเดจเต, เดชเดฐเดฎเดพเดตเดงเดฟ - 6474 (!!). เดเดฏเตผเดจเตเดจ เดเดชเดฏเตเด เดจเดฟเดฐเดเตเดเดฟเตฝ เดฒเตเดจเดฟเดฏเตผ เดธเตเตปเดธเดฟเดเดเต เดชเตเดฐเดเดเดจเด เดเดฃเตเดฏเดฎเดพเดฏเดฟ เดเตเดฑเดฏเตเดจเตเดจเต.
เด เดนเดพเดทเต เดเตเดฌเดฟเดณเดฟเดจเตเดฑเต เดเดชเดฏเตเด เดจเดฟเดฐเดเตเดเต เดเตเดฑเดตเดพเดฏเดฟ เดธเตเดเตเดทเดฟเดเตเดเตเดจเตเดจเดคเดพเดฃเต เดจเดฒเตเดฒเดคเต. เดเดจเตเดจเดพเตฝ เดฎเตเดฎเตเดฎเดฑเดฟ เดเดชเดญเตเดเดคเตเดคเดฟเดจเตเดฑเต เดเตเดฒเดตเดฟเตฝ เดเดเตเดเตพ เดชเตเดฐเดเดเดจเด เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต. เดญเดพเดเตเดฏเดตเดถเดพเตฝ, 32-เดฌเดฟเดฑเตเดฑเต เดเตเดเดณเตเดเตเดฏเตเด เดฎเตเดฒเตเดฏเดเตเดเดณเตเดเตเดฏเตเด เดเดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดเดคเต เดจเตเดฏเดพเดฏเตเดเดฐเดฟเดเตเดเดพเดตเตเดจเตเดจเดคเดพเดฃเต. เดฎเตเดเดณเดฟเดฒเตเดณเตเดณ เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ, 128 เดฆเดถเดฒเดเตเดทเด เดฎเตเดฒเดเดเตเดเดณเตเดณเตเดณ เดเดฐเต เดชเดเตเดเดฟเดเดฏเดฟเตฝ, เดเดเตเดเตพ 0,25 เดจเตเดฑเต เดเดชเดฏเตเด เดเดเดเด เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เดจเดฎเตเดเตเดเต เด เดคเดฟเตฝ 32 เดฆเดถเดฒเดเตเดทเดคเตเดคเดฟเดฒเดงเดฟเดเด เดเดเดเดเตเดเตพ เดธเตเดฅเดพเดชเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเดฟเดฒเตเดฒ, เดถเตเดทเดฟเดเตเดเตเดจเตเดจ 96 เดฆเดถเดฒเดเตเดทเด เดธเตเดฒเตเดเตเดเตเดเตพ เดจเดทเตเดเดชเตเดชเตเดเตเด - เดเดฐเต เดเตเดกเดฟเดเตเดเตเด 8 เดฌเตเดฑเตเดฑเตเดเตพ , 768 MB เดฎเตเดฎเตเดฎเดฑเดฟ เดจเดทเตเดเดชเตเดชเตเดเตเดเต.
เดธเดฟเดธเตเดฑเตเดฑเด เดฎเตเดฎเตเดฎเดฑเดฟเดฏเตเดเตเดเดพเตพ เดตเดฟเดฒเดฏเตเดฑเดฟเดฏ เดเดฑเดตเดฟเดเดฎเดพเดฏ เดตเตเดกเดฟเดฏเต เดเดพเตผเดกเต เดฎเตเดฎเตเดฎเดฑเดฟ เดจเดทเตเดเดชเตเดชเตเดเตเดจเตเดจเดคเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเดพเดฃเต เดจเดฎเตเดฎเตพ เดธเดเดธเดพเดฐเดฟเดเตเดเตเดจเตเดจเดคเต. CUDA-เดฏเต เดชเดฟเดจเตเดคเตเดฃเดฏเตโเดเตเดเตเดจเตเดจ เดฎเดฟเดเตเด เดเดงเตเดจเดฟเด เดกเตเดธเตโเดเตโเดเตเดชเตเดชเต เดเตเดฐเดพเดซเดฟเดเตโเดธเต เดเดพเตผเดกเตเดเตพเดเตเดเตเด เดเตเดฑเดเตเดเดคเต 4 GB เดฎเตเดฎเตเดฎเดฑเดฟ เดเดฃเตเดเตเดเตเดเดฟเดฒเตเด (เดเดดเตเดคเตเดฎเตเดชเตเตพ, NVIDIA 2080 Ti-เดเตเดเต 11 GB เดเดฃเตเดเต), เด เดคเตเดคเดฐเด เดคเตเดเดเตพ เดจเดทเตโเดเดชเตเดชเตเดเตเดคเตเดคเตเดจเตเดจเดคเต เดเดชเตเดชเตเดดเตเด เดฌเตเดฆเตเดงเดฟเดชเดฐเดฎเดพเดฏ เดคเตเดฐเตเดฎเดพเดจเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเดฟเดฒเตเดฒ.
เดกเตเดชเตเดคเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเดคเดฟเตฝ เดชเตเดฐเดถเตโเดจเดเตเดเดณเดฟเดฒเตเดฒเดพเดคเตเดค เดตเตเดกเดฟเดฏเต เดเดพเตผเดกเตเดเตพเดเตเดเดพเดฏเดฟ เดนเดพเดทเต เดเตเดฌเดฟเดณเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเตเด เดเดฒเตเดฒเดพเดคเดพเดเตเดเดฟเดฏ เดธเตเดฒเตเดเตเดเตเดเตพ เดตเตเดฃเตเดเตเด เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดตเดดเดฟเดเดณเตเดเตเดเตเดฑเดฟเดเตเดเตเด เดชเดฟเดจเตเดจเตเดเต เดเดพเตป เดเตเดเตเดคเตฝ เดเดดเตเดคเดพเด.
เดถเดฌเตเดฆเดคเตเดคเดฟเดจเตเดฑเต เดเดดเด เด เดณเดเตเดเตฝ
เดเดฐเต เดเตเดฏเตเดเต เดชเตเดฐเตเดฌเดฟเดเดเต เดกเตเดชเตเดคเต เดจเดฟเตผเดฃเตเดฃเดฏเดฟเดเตเดเดพเตป, เดจเดฎเตเดเตเดเต เด เดคเดฟเดจเตเดฑเต เดฏเดฅเดพเตผเดคเตเดฅ เดชเดเตเดเดฟเด เดธเตเดเดฟเดเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดเตเดฏเตเดเต เดนเดพเดทเต (เด เดคเดฟเดจเตเดฑเต เด เดจเตเดฏเตเดเตเดฏเดฎเดพเดฏ เดชเดเตเดเดฟเด เดธเตเดเดฟเด) เดตเตเตผเดคเดฟเดฐเดฟเดเตเดเตเดเตเดเตเดเดพเตป เดเดดเดฟเดฏเตเด:
// get_key_index() -> index of key in hash table
uint32_t probelength = (get_key_index(key) - hash(key)) & (hashtablecapacity-1);
เดฐเดฃเตเดเดฟเดจเตเดฑเต เดฐเดฃเตเดเดฟเดจเตเดฑเต เดชเตเดฐเด เดฌเตเดจเดฑเดฟ เดจเดฎเตเดชเดฑเตเดเดณเตเดเต เดฎเดพเดจเตเดคเตเดฐเดฟเดเดคเดฏเตเด เดนเดพเดทเต เดเตเดฌเดฟเดณเดฟเดจเตเดฑเต เดถเตเดทเดฟ เดฐเดฃเตเดเดฟเดจเตเดฑเต เดถเดเตเดคเดฟเดฏเดฟเตฝ เดฐเดฃเตเดเดพเดฃเตเดจเตเดจ เดตเดธเตเดคเตเดคเดฏเตเด เดเดพเดฐเดฃเด, เดเต เดธเตเดเดฟเด เดชเดเตเดเดฟเดเดฏเตเดเต เดคเตเดเดเตเดเดคเตเดคเดฟเดฒเตเดเตเดเต เดฎเดพเดฑเตเดฑเตเดฎเตเดชเตเดดเตเด เด เดธเดฎเตเดชเดจเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเด. เดจเดฎเตเดเตเดเต 1 เดฒเตเดเตเดเต เดนเดพเดทเต เดเตเดฏเตเดค เดเดฐเต เดเต เดเดเตเดเตเดเดพเด, เดเดจเตเดจเดพเตฝ เดธเตเดฒเตเดเตเดเต 3 เดฒเตเดเตเดเต เดเตเตผเดคเตเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดคเตเดเตผเดจเตเดจเต เดถเตเดทเดฟ 4 เดเดณเตเดณ เดเดฐเต เดเตเดฌเดฟเดณเดฟเดจเดพเดฏเดฟ เดจเดฎเตเดเตเดเต เดฒเดญเดฟเดเตเดเตเด (3 โ 1) & 3
, เดเดคเต 2 เดจเต เดคเตเดฒเตเดฏเดฎเดพเดฃเต.
เดคเตเดฐเตเดฎเดพเดจเด
เดจเดฟเดเตเดเตพเดเตเดเต เดเตเดฆเตเดฏเดเตเดเดณเต เด
เดญเดฟเดชเตเดฐเดพเดฏเดเตเดเดณเต เดเดฃเตเดเตเดเตเดเดฟเตฝ, เดฆเดฏเดตเดพเดฏเดฟ เดเดจเดฟเดเตเดเต เดเดฎเตเดฏเดฟเตฝ เดเตเดฏเตเดฏเตเด
เดฎเดฟเดเดเตเด เดฒเตเดเดจเดเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฐเดเตเดฆเดจเด เดเตพเดเตเดเตเดฃเตเดเดพเดฃเต เด เดเตเดกเต เดเดดเตเดคเดฟเดฏเดคเต:
เดฒเตเดเดคเตเดคเดฟเดฒเต เดเดฑเตเดฑเดตเตเด เดฒเดณเดฟเดคเดฎเดพเดฏ เดฒเตเดเตเดเต-เดซเตเดฐเต เดนเดพเดทเต เดเตเดฌเดฟเตพ เดเดฐเต เดฒเตเดเตเดเต-เดซเตเดฐเต เดตเตเดฏเตเดฑเตเดฑเต-เดซเตเดฐเต เดนเดพเดทเต เดเตเดฌเดฟเตพ
เดญเดพเดตเดฟเดฏเดฟเตฝ, เดตเตเดกเดฟเดฏเต เดเดพเตผเดกเตเดเตพเดเตเดเดพเดฏเตเดณเตเดณ เดนเดพเดทเต เดเตเดฌเดฟเตพ เดจเดฟเตผเดตเตเดตเดนเดฃเดเตเดเดณเตเดเตเดเตเดฑเดฟเดเตเดเต เดเดพเตป เดเดดเตเดคเตเดจเตเดจเดคเต เดคเตเดเดฐเตเดเดฏเตเด เด
เดตเดฏเตเดเต เดชเตเดฐเดเดเดจเด เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดฏเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด. เดเดจเตเดฑเต เดชเตเดฒเดพเดจเตเดเดณเดฟเตฝ GPU เดซเตเดฐเดฃเตเดเตโเดฒเดฟ เดเดฏ เดกเดพเดฑเตเดฑ เดธเตเดเตเดฐเดเตเดเตเดเดฑเตเดเดณเดฟเดฒเต เดเดฑเตเดฑเตเดฎเดฟเดเต เดเดชเตเดชเดฑเตเดทเดจเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดเตเดฏเดฟเดจเดฟเดเดเต, เดฑเตเดฌเดฟเตป เดนเตเดกเต เดนเดพเดทเดฟเดเดเต, เดเตเดเตเดเต เดนเดพเดทเดฟเดเดเต เดเดจเตเดจเดฟเดต เดเตพเดชเตเดชเตเดเตเดจเตเดจเต.
เด
เดตเดฒเดเดฌเด: www.habr.com