เชฎเซเช เชคเซเชจเซ เชเซเชฅเชฌ เชชเชฐ เชชเซเชธเซเช เชเชฐเซเชฏเซเช
เชคเซ เชเช เชธเชฐเชณ GPU เชนเซเชถ เชเซเชฌเชฒ เชเซ เชเซ เชธเซเชเชเชกเซ เชฒเชพเชเซ เชเชจเซเชธเชฐเซเชเซเชธ เชชเซเชฐเชคเชฟ เชธเซเชเชจเซเชก เชชเชฐ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเชตเชพเชฎเชพเช เชธเชเซเชทเชฎ เชเซ. เชฎเชพเชฐเชพ NVIDIA GTX 1060 เชฒเซเชชเชเซเชช เชชเชฐ, เชเซเชก เชฒเชเชญเช 64 ms เชฎเชพเช เชฐเซเชจเซเชกเชฎเชฒเซ เชเชจเชฐเซเช เชฅเชฏเซเชฒ 210 เชฎเชฟเชฒเชฟเชฏเชจ เชเซ-เชตเซเชฒเซเชฏเซ เชเซเชกเซเช เชฆเชพเชเชฒ เชเชฐเซ เชเซ เช เชจเซ เชฒเชเชญเช 32 ms เชฎเชพเช 64 เชฎเชฟเชฒเชฟเชฏเชจ เชเซเชกเซเชเชจเซ เชฆเซเชฐ เชเชฐเซ เชเซ.
เชเชเชฒเซ เชเซ, เชฒเซเชชเชเซเชช เชชเชฐเชจเซ เชเชกเชช เชเชถเชฐเซ 300 เชฎเชฟเชฒเชฟเชฏเชจ เชเชจเซเชธเชฐเซเช/เชธเซเชเชจเซเชก เช เชจเซ 500 เชฎเชฟเชฒเชฟเชฏเชจ เชกเชฟเชฒเซเช/เชธเซเชเชจเซเชก เชเซ.
เชเซเชทเซเชเช CUDA เชฎเชพเช เชฒเชเชพเชฏเซเชฒ เชเซ, เชเซ เชเซ เชธเชฎเชพเชจ เชคเชเชจเซเช HLSL เช เชฅเชตเชพ GLSL เชชเชฐ เชฒเชพเชเซ เชเชฐเซ เชถเชเชพเชฏ เชเซ. เชตเชฟเชกเซเชฏเซ เชเชพเชฐเซเชก เชชเชฐ เชเชเซเช เชชเซเชฐเชฆเชฐเซเชถเชจ เชธเซเชจเชฟเชถเซเชเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ เช เชฎเชฒเซเชเชฐเชฃเชฎเชพเช เชเชฃเซ เชฎเชฐเซเชฏเชพเชฆเชพเช เชเซ:
- เชซเชเซเชค 32-เชฌเซเช เชเซ เช เชจเซ เชธเชฎเชพเชจ เชฎเซเชฒเซเชฏเซ เชชเชฐ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
- เชนเซเชถ เชเซเชฌเชฒเชฎเชพเช เชจเชฟเชถเซเชเชฟเชค เชเชฆ เชนเซเชฏ เชเซ.
- เช เชจเซ เช เชฎเชพเชช เชถเชเซเชคเชฟเชจเชพ เชฌเซ เชฌเชฐเชพเชฌเชฐ เชนเซเชตเซเช เชเซเชเช.
เชเซเช เช
เชจเซ เชฎเซเชฒเซเชฏเซ เชฎเชพเชเซ, เชคเชฎเชพเชฐเซ เชเช เชธเชฐเชณ เชกเชฟเชฒเชฟเชฎเชฟเชเชฐ เชฎเชพเชฐเซเชเชฐ เช
เชจเชพเชฎเชค เชฐเชพเชเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ (เชเชชเชฐเซเชเซเชค เชเซเชกเชฎเชพเช เช 0xffffffff เชเซ).
เชคเชพเชณเชพเช เชตเชฟเชจเชพ เชนเซเชถ เชเซเชฌเชฒ
เชนเซเชถ เชเซเชฌเชฒ เชเชชเชจ เชเชกเซเชฐเซเชธเซเชเชเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ KeyValue
:
struct KeyValue
{
uint32_t key;
uint32_t value;
};
เชเซเชทเซเชเชเชจเซเช เชเชฆ เชฌเซเชจเซ เชถเชเซเชคเชฟ เชเซ, เช เชตเชฟเชญเชพเชเซเชฏ เชธเชเชเซเชฏเชพ เชจเชฅเซ, เชเชพเชฐเชฃ เชเซ pow2/AND เชฎเชพเชธเซเช เชฒเชพเชเซ เชเชฐเชตเชพ เชฎเชพเชเซ เชเช เชเชกเชชเซ เชธเซเชเชจเชพ เชชเซเชฐเชคเซ เชเซ, เชชเชฐเชเชคเซ เชฎเซเชกเซเชฏเซเชฒเชธ เชเชชเชฐเซเชเชฐ เชเซเชฌ เชงเซเชฎเซเช เชเซ. เชฒเซเชจเชฟเชฏเชฐ เชชเซเชฐเซเชฌเชฟเชเชเชจเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช เช เช เชเชคเซเชฏเชจเซเช เชเซ, เชเชพเชฐเชฃ เชเซ เชฒเซเชจเชฟเชฏเชฐ เชเซเชฌเชฒ เชฒเซเชเช เชชเชฎเชพเช เชฆเชฐเซเช เชธเซเชฒเซเชเชฎเชพเช เชธเซเชฒเซเช เชเชจเซเชกเซเชเซเชธ เชเชตเชฐเชฟเชค เชนเซเชตเซ เชเซเชเช. เช เชจเซ เชชเชฐเชฟเชฃเชพเชฎเซ, เชเชชเชฐเซเชถเชจเชจเซ เชเชฟเชเชฎเชค เชฆเชฐเซเช เชธเซเชฒเซเชเชฎเชพเช เชฎเซเชกเซเชฏเซเชฒเซ เชเชฎเซเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เชเซเชทเซเชเช เชฆเชฐเซเช เชคเชคเซเชต เชฎเชพเชเซ เชฎเชพเชคเซเชฐ เชเซ เช เชจเซ เชฎเซเชฒเซเชฏ เชธเชเชเซเชฐเชนเชฟเชค เชเชฐเซ เชเซ, เชเซเชจเซ เชนเซเชถ เชจเชนเซเช. เชเซเชฌเชฒ เชฎเชพเชคเซเชฐ 32-เชฌเซเช เชเซ เชธเซเชเซเชฐ เชเชฐเซ เชเซ, เชคเซเชฅเซ เชนเซเชถเชจเซ เชเชฃเชคเชฐเซ เชเซเชฌ เช เชเชกเชชเชฅเซ เชฅเชพเชฏ เชเซ. เชเชชเชฐเซเชเซเชค เชเซเชก Murmur3 เชนเซเชถเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ, เชเซ เชฎเชพเชคเซเชฐ เชฅเซเชกเซ เชถเชฟเชซเซเชเซเชธ, XORs เช เชจเซ เชเซเชฃเชพเชเชพเชฐ เชเชฐเซ เชเซ.
เชนเซเชถ เชเซเชฌเชฒ เชฒเซเชเซเชเช เชชเซเชฐเซเชเซเชเซเชถเชจ เชคเชเชจเซเชเซเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ เชเซ เชฎเซเชฎเชฐเซ เชเชฐเซเชกเชฐเชฅเซ เชธเซเชตเชคเชเชคเซเชฐ เชเซ. เชเซ เช เชฎเซเช เชฐเชพเชเช เชเชชเชฐเซเชถเชจเซเชธ เช เชจเซเชฏ เชเชตเชพ เชเชชเชฐเซเชถเชจเซเชธเชจเชพ เชเซเชฐเชฎเชฎเชพเช เชตเชฟเชเซเชทเซเชช เชชเชพเชกเซ เชคเซ เชชเชฃ, เชนเซเชถ เชเซเชฌเชฒ เชนเชเซ เชชเชฃ เชธเชพเชเซ เชธเซเชฅเชฟเชคเชฟ เชเชพเชณเชตเซ เชฐเชพเชเชถเซ. เช เชฎเซ เชจเซเชเซ เช เชตเชฟเชถเซ เชตเชพเชค เชเชฐเซเชถเซเช. เช เชเซเชเชจเซเช เชตเชฟเชกเซเชฏเซ เชเชพเชฐเซเชก เชธเชพเชฅเซ เชธเชฐเชธ เชเชพเชฎ เชเชฐเซ เชเซ เชเซ เชเชเชธเชพเชฅเซ เชนเชเชพเชฐเซ เชฅเซเชฐเซเชกเซ เชเชฒเชพเชตเซ เชเซ.
เชนเซเชถ เชเซเชฌเชฒเชฎเชพเช เชเซเช เช เชจเซ เชฎเซเชฒเซเชฏเซ เชเชพเชฒเซ เชเชฐเชตเชพ เชฎเชพเชเซ เชชเซเชฐเชพเชฐเชเชญ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เชเซเชกเชจเซ 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()
เชธเชฎเชพเชเชคเชฐเชฎเชพเช เชเซเชกเซเชจเชพ เชเชฐเซ เชชเชฐ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเซ, เชฆเชฐเซเช เชเซเชกเซ เช
เชฒเช GPU เชเชเซเชเซเชเซเชฏเซเชถเชจ เชฅเซเชฐเซเชกเชฎเชพเช:
// 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
เช
เชจเซ GPU เชฎเชพเชเซ เชตเชฐเซเชเซเชฏเซเช
เชฒ เชฐเซเชคเซ เชเซเช เชนเซเชถ เชเซเชฌเชฒ เชจเชฅเซ:
std::unordered_map
เชคเชคเซเชตเซ เชฆเชพเชเชฒ เชเชฐเชตเชพ เช
เชจเซ เชฆเซเชฐ เชเชฐเชตเชพ เช
เชจเซ เชชเชเซ เชคเซเชฎเชจเซ เชฎเซเชเซเชค เชเชฐเชตเชพเชฎเชพเช 70 ms เชเชฐเซเชเซเชฏเชพ unordered_map
(เชฒเชพเชเซ เชคเชคเซเชตเซเชฅเซ เชเซเชเชเชพเชฐเซ เชฎเซเชณเชตเชตเชพเชฎเชพเช เชเชฃเซ เชธเชฎเชฏ เชฒเชพเชเซ เชเซ, เชเชพเชฐเชฃ เชเซ เช
เชเชฆเชฐ unordered_map
เชฌเชนเซเชตเชฟเชง เชฎเซเชฎเชฐเซ เชซเชพเชณเชตเชฃเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ). เชธเชพเชเซเช เชเชนเซเช เชคเซ, std:unordered_map
เชธเชเชชเซเชฐเซเชฃเชชเชฃเซ เช
เชฒเช เชชเซเชฐเชคเชฟเชฌเชเชงเซ. เชคเซ เชเชเซเชเซเชเซเชฏเซเชถเชจเชจเซ เชธเชฟเชเชเชฒ CPU เชฅเซเชฐเซเชก เชเซ, เชเซเชเชชเชฃ เชเชฆเชจเชพ เชเซ-เชฎเซเชฒเซเชฏเซเชจเซ เชธเชชเซเชฐเซเช เชเชฐเซ เชเซ, เชเชเซเช เชเชชเชฏเซเช เชฆเชฐเซ เชธเชพเชฐเซเช เชชเซเชฐเชฆเชฐเซเชถเชจ เชเชฐเซ เชเซ, เช
เชจเซ เชฌเชนเซเชตเชฟเชง เชเชพเชขเซ เชจเชพเชเชตเชพ เชชเชเซ เชธเซเชฅเชฟเชฐ เชชเซเชฐเชฆเชฐเซเชถเชจ เชฆเชฐเซเชถเชพเชตเซ เชเซ.
GPU เช เชจเซ เชเชจเซเชเชฐ-เชชเซเชฐเซเชเซเชฐเชพเชฎ เชเชฎเซเชฏเซเชจเชฟเชเซเชถเชจ เชฎเชพเชเซ เชนเซเชถ เชเซเชฌเชฒเชจเซ เชธเชฎเชฏเชเชพเชณเซ 984 ms เชนเชคเซ. เชเชฎเชพเช เชเซเชฌเชฒเชจเซ เชฎเซเชฎเชฐเซเชฎเชพเช เชฎเซเชเชตเชพ เช เชจเซ เชคเซเชจเซ เชเชพเชขเซ เชจเชพเชเชตเชพเชฎเชพเช เชตเชฟเชคเชพเชตเซเชฒเซ เชธเชฎเชฏเชจเซ เชธเชฎเชพเชตเซเชถ เชฅเชพเชฏ เชเซ (เชเชเชตเชพเชฐ 1 GB เชฎเซเชฎเชฐเซ เชซเชพเชณเชตเชตเซ, เชเซ CUDA เชฎเชพเช เชฅเซเชกเซ เชธเชฎเชฏ เชฒเซ เชเซ), เชคเชคเซเชตเซเชจเซ เชฆเชพเชเชฒ เชเชฐเชตเชพ เช เชจเซ เชเชพเชขเซ เชจเชพเชเชตเชพเชฎเชพเช เช เชจเซ เชคเซเชจเชพ เชชเชฐ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชตเชฟเชกเชฟเชฏเซ เชเชพเชฐเซเชก เชฎเซเชฎเชฐเซเชฎเชพเช เช เชจเซ เชคเซเชจเซ เชฌเชงเซ เชจเชเชฒเซ เชชเชฃ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเซเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เชนเซเชถ เชเซเชฌเชฒเชจเซ เชชเซเชฐเซเชฃ เชเชฐเชตเชพเชฎเชพเช 271 เชเชฎเชเชธเชจเซ เชธเชฎเชฏ เชฒเชพเชเซเชฏเซ. เชเชฎเชพเช เชตเชฟเชกเชฟเชฏเซ เชเชพเชฐเซเชก เชฆเซเชตเชพเชฐเชพ เชเชเชเซเชจเซ เชฆเชพเชเชฒ เชเชฐเชตเชพเชฎเชพเช เช เชจเซ เชเชพเชขเซ เชจเชพเชเชตเชพเชฎเชพเช เชตเชฟเชคเชพเชตเซเชฒเซ เชธเชฎเชฏ เชถเชพเชฎเซเชฒ เชเซ, เช เชจเซ เชฎเซเชฎเชฐเซเชฎเชพเช เชเซเชชเชฟ เชเชฐเชตเชพเชฎเชพเช เช เชจเซ เชชเชฐเชฟเชฃเชพเชฎเซ เชเซเชทเซเชเช เชชเชฐ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชตเชฟเชคเชพเชตเซเชฒ เชธเชฎเชฏเชจเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเซเชคเซ เชจเชฅเซ. เชเซ GPU เชเซเชฌเชฒ เชฒเชพเชเชฌเซ เชธเชฎเชฏ เชเซเชตเซ เชเซ, เช เชฅเชตเชพ เชเซ เชนเซเชถ เชเซเชฌเชฒ เชธเชเชชเซเชฐเซเชฃเชชเชฃเซ เชตเชฟเชกเชฟเชฏเซ เชเชพเชฐเซเชกเชจเซ เชฎเซเชฎเชฐเซเชฎเชพเช เชธเชฎเชพเชฏเซเชฒเซเช เชเซ (เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชนเซเชถ เชเซเชฌเชฒ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ เชเซเชจเซ เชเชชเชฏเซเช เช เชจเซเชฏ GPU เชเซเชก เชฆเซเชตเชพเชฐเชพ เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ เช เชจเซ เชเซเชจเซเชฆเซเชฐเซเชฏ เชชเซเชฐเซเชธเซเชธเชฐ เชฆเซเชตเชพเชฐเชพ เชจเชนเซเช), เชคเซ เชชเชเซ เชชเชฐเซเชเซเชทเชฃ เชชเชฐเชฟเชฃเชพเชฎ เชธเชเชฌเชเชงเชฟเชค เชเซ.
เชตเชฟเชกเซเชฏเซ เชเชพเชฐเซเชก เชฎเชพเชเซ เชนเซเชถ เชเซเชฌเชฒ เชเชเซเช เชฅเซเชฐเซเชชเซเช เช เชจเซ เชธเชเซเชฐเชฟเชฏ เชธเชฎเชพเชเชคเชฐเชฃเชจเซ เชเชพเชฐเชฃเซ เชเชเซเช เชชเซเชฐเชฆเชฐเซเชถเชจ เชฆเชฐเซเชถเชพเชตเซ เชเซ.
เชเชพเชฎเซเช
เชนเซเชถ เชเซเชฌเชฒ เชเชฐเซเชเชฟเชเซเชเซเชเชฐเชฎเชพเช เชฅเซเชกเชพ เชฎเซเชฆเซเชฆเชพเช เชเซ เชเซเชจเชพ เชตเชฟเชถเซ เชงเซเชฏเชพเชจ เชฐเชพเชเชตเซเช:
- เชฒเซเชจเชฟเชฏเชฐ เชชเซเชฐเซเชฌเชฟเชเช เชเซเชฒเชธเซเชเชฐเชฟเชเช เชฆเซเชตเชพเชฐเชพ เช เชตเชฐเซเชงเชพเชฏ เชเซ, เชเซเชจเชพ เชเชพเชฐเชฃเซ เชเซเชทเซเชเชเชฎเชพเช เชเซเช เชธเชเชชเซเชฐเซเชฃ เชฐเซเชคเซ เชเชเซ เชฎเซเชเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
- เชเชพเชฐเซเชฏเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเซ เชฆเซเชฐ เชเชฐเชตเชพเชฎเชพเช เชเชตเชคเซ เชจเชฅเซ
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