Size: a a a

pro.graphon (and gamedev)

2020 May 09

AT

Anatoly Tomilov in pro.graphon (and gamedev)
Simultaneous access to managed memory on devices of compute capability lower than 6.x is not possible, because coherence could not be guaranteed if the CPU accessed a Unified Memory allocation while a GPU kernel was active. However, devices of compute capability 6.x on supporting operating systems allow the CPUs and GPUs to access Unified Memory allocations simultaneously via the new page faulting mechanism.
источник

a

alexcher in pro.graphon (and gamedev)
это ко всей менеджед памяти относится, или к concurrent?
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
я так понимаю TLB на хосте и девайсе синхронизируется по PCI ну или что-то в этом духе
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
судя по написанному ко всей. А что за concurrent?
источник

a

alexcher in pro.graphon (and gamedev)
Anatoly Tomilov
concurrentManagedAccess - когерентность между девайсом и хостом
это
источник

a

alexcher in pro.graphon (and gamedev)
в чем смысл этой когерентности? как оно работает?
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
alexcher
это
разные свойства это. На деле может быть, что девайсов с concurrentManagedAccess, но без этих атомиков просто не существует в природе, но техническая возможность всё ещё остаётся
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
alexcher
в чем смысл этой когерентности? как оно работает?
записал на хосте. Вызвал куда-ядро, которое читает из этого блока памяти. Между — не надо делать пересылки. В этом удобство
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
и наоборот тоже
источник

a

alexcher in pro.graphon (and gamedev)
Anatoly Tomilov
pageableMemoryAccessUsesHostPageTables - вызываешь malloc/new и передаёшь указатель полученный в код, исполняемый на девайсе и там по нему доступаешься без всяких дополнительных действий с твоей стороны
тогда вот это - подвид concurrent памяти?
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
alexcher
тогда вот это - подвид concurrent памяти?
кажется нет
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
то есть pageable и managed — это разные понятия
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
честно говоря здесь я теряюсь
источник

a

alexcher in pro.graphon (and gamedev)
Anatoly Tomilov
pageableMemoryAccessUsesHostPageTables - вызываешь malloc/new и передаёшь указатель полученный в код, исполняемый на девайсе и там по нему доступаешься без всяких дополнительных действий с твоей стороны
тут подходит
источник

a

alexcher in pro.graphon (and gamedev)
Anatoly Tomilov
directManagedMemAccessFromHost - аналог в Vulkan-е — можно не вызывать invalidate (или flush, не помню)
а разница между paged и этим в расположении памяти? paged лежит в оперативке, и видюха туда лезет, а direct на видюхе, и проц туда лезет?
источник

a

alexcher in pro.graphon (and gamedev)
или как оно там
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
pageable - это видимо диапазоны адресов памяти, физически находящейся на хосте, при доступе к которым из кода на девайсе девайс знает откуда брать её содержимое
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
alexcher
а разница между paged и этим в расположении памяти? paged лежит в оперативке, и видюха туда лезет, а direct на видюхе, и проц туда лезет?
кажется так
источник

a

alexcher in pro.graphon (and gamedev)
Anatoly Tomilov
кажется так
тогда есть ли несколько видов памяти, которая лежит на видюхе и в нее может лазать проц?
источник

a

alexcher in pro.graphon (and gamedev)
Anatoly Tomilov
pageable - это видимо диапазоны адресов памяти, физически находящейся на хосте, при доступе к которым из кода на девайсе девайс знает откуда брать её содержимое
ну я так и понял)
источник