pin_memory
pytorch創(chuàng)建data.DataLoader時(shí)囱嫩,參數(shù)pin_memory的理解
鎖頁(yè)內(nèi)存理解(pinned memory or page locked memory):https://blog.csdn.net/dgh_dean/article/details/53130871
What is the disadvantage of using pin_memory: https://discuss.pytorch.org/t/what-is-the-disadvantage-of-using-pin-memory/1702
pin_memory就是鎖頁(yè)內(nèi)存晶衷,創(chuàng)建DataLoader時(shí)争舞,設(shè)置pin_memory=True翅溺,則意味著生成的Tensor數(shù)據(jù)最開(kāi)始是屬于內(nèi)存中的鎖頁(yè)內(nèi)存,這樣將內(nèi)存的Tensor轉(zhuǎn)義到GPU的顯存就會(huì)更快一些。
主機(jī)中的內(nèi)存,有兩種存在方式哺眯,一是鎖頁(yè)谷浅,二是不鎖頁(yè)扒俯,鎖頁(yè)內(nèi)存存放的內(nèi)容在任何情況下都不會(huì)與主機(jī)的虛擬內(nèi)存進(jìn)行交換(注:虛擬內(nèi)存就是硬盤),而不鎖頁(yè)內(nèi)存在主機(jī)內(nèi)存不足時(shí)一疯,數(shù)據(jù)會(huì)存放在虛擬內(nèi)存中撼玄。
而顯卡中的顯存全部是鎖頁(yè)內(nèi)存!
當(dāng)計(jì)算機(jī)的內(nèi)存充足的時(shí)候墩邀,可以設(shè)置pin_memory=True掌猛。當(dāng)系統(tǒng)卡住,或者交換內(nèi)存使用過(guò)多的時(shí)候眉睹,設(shè)置pin_memory=False荔茬。因?yàn)閜in_memory與電腦硬件性能有關(guān),pytorch開(kāi)發(fā)者不能確保每一個(gè)煉丹玩家都有高端設(shè)備竹海,因此pin_memory默認(rèn)為False慕蔚。
作者:tsq292978891
來(lái)源:CSDN
原文:https://blog.csdn.net/tsq292978891/article/details/80454568
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接斋配!