Ребят, ребят. Попробуем посмотреть на задачу с теоретической стороны. Проблема использования RAM состоит в том, что канал связи видеокарты и RAM крайне узок, и будет все замедлять, помимо этого, RAM и память видеокарты имеют несколько разную структуру, и это тоже влияет. В связи с этим, если мы захотим задействовать RAM чтобы разгрузить видеокарту, нам нужно либо какое-то аппаратное решение (или какая-нибудь там новая архитектура), ускоряющее доступ к RAM из видеокарты (минуя шину PCIE, например), либо делить сцену на части и часть рендерить видеокартой, часть процессором. Первое сложно и нестандартно, можно и дорого. Второе имеет в себе проблему - пока не отрендерил, непонятно, какая часть текстурок/полигонов/шейдеров влияет на какую часть и как их разделить (привет, отражения, каустика, подповерхностное рассеяние, преломление и прочая дурь), и вообще, можно ли их как-то разделить так, чтобы рендерить независимо, чтобы не надо было видеокарте с ОЗУ общаться. Ведь, если, скажем, поделить картинку на две части, то пока мы не порендерили, нам не понятно, какие текстуры и полигоны видны в той или иной части картинки, и не понятно что куда качать.
Поэтому есть проблема расширения памяти видеокарты рамой.
С другой стороны, существует такая фишечка, как аппаратное сжатие текстур. В случае с процессором, это будет жрать процессор, ибо рама есть унифицированная память и таких фишек не делает. А в видеокарте могут засадить отдельный аппаратный конвейер для сжатия текстуры на лету, в результате чего скорость работы не пострадает, а вот размер текстур уменьшится. Разумеется, этот способ несет в себе джпег головного мозга, со всеми вытекающими, однако он более-менее позволяет без потери производительности засунуть в карточку текстурки в 10 Гб, которые в RAM будут занимать 50 Гб. Но это если у нас попа связана именно с объемом текстур. Полигоны сжимать тоже наверно можно, но здесь нетривиальность будет переть из всех щелей.
Помимо этого, вроде как в таких хороших вещах, как Quadro и Tesla память вполне себе суммируется, потому как эти карты полноценно умеют друг с другом общаться и спрашивать что у кого там лежит. Знание это подчерпнуто из турториала из ютуба, где у чувака две разных квадры, и та, которая жрет и делает больше, включается только когда у первой кончается память и/или производительность. Извинитененашел. Пруфы в документации к квадрам. Вот.
Еще можно придумать видеокарту с разъемами для плашек памяти, чтобы кто-нибудь поставил в нее 10 Тб и был доволен, однако смысл видеокарты в том числе в особой структуре ее памяти, которая серьезно отличается от классической ОЗУ и во многом обеспечивает ту самую большую производительность ГПУ. Поэтому плашки тут не помогут, и, скорее всего, по этой же причине, не поможет выделенная шина связи между GPU и ОЗУ - архитектура памяти тоже влияет.
Между тем, я дичайше уверен, что если взять iray и закатать его в плату как ПЛМ/ПЛИС или как их там, то он будет просто рвать всё в радиусе 100 километров и рендерить вышеобозначенную сцену с частотой 30 к/с. Однако, я думаю, проще будет подождать, пока карточки станут быстрее и на них эта штука начнет летать. Собственно, когда придумали 3д-ускоритель, они так и сделали, но засунули в карточку рендеринг проекцией. А тут можно именно под ирей сделать.
И наконец, можно крайне хитропопо устроить рендеринг. А именно запихать в видеокарту часть сцены, которая влезает, и затем, если надо-что то, чего нет, докачивать с компа, перемешивая данные между ОЗУ и памятью видеокарты по такому принципу, чтобы наиболее часто используемые данные оставались в видеокарте, а все остальные, которые не влезли - в раме. Вот тогда, теоретически, можно разделить данные между карточкой и рамой, и это даст прирост в производительности. И то, далеко не во всех сценах. А еще архитектура этого рендера будет очень занимательна.
Вообще не факт, что чтобы отрендерить сцену, нам нужно обязательно всю ее загрузить в память. Посмотрите на современные игры. Battlefield, или, к примеру, GTA 5. Гигантский мир, однако работает в реалтайме. Метод рендеринга другой, конечно, но в любом случае, есть текстуры и полигоны. Как это работает быстро? Оно оптимизированно и подгружает только то, что нужно, и удаляет из видеокарты то, что не нужно. Поэтому и работает. С рендером можно замутить также, хотя это и на порядки сложнее. Например, можно уменьшить точность просчета отражений на дальних объектах. Ну и так далее.
Резюмируя, хочу сказать такое. История движется по спирали. Сначала запилили универсальный процессор, потом аппаратный 3д ускоритель, потом сделали 3д ускоритель универсальным. Сейчас есть вероятность, что вот этот вот unbiased рендеринг сделают неунифцированно и аппаратно, ибо элементная база позволяет. Ну или не сейчас.