سلام
اگه از تنسورفلو استفاده میکنید بنظرم میاد این عادیه چون تنسورفلو کل فضای gpu رو اشغال میکنه و بعد خودش مدیریت رو انجام میده .(سابقا اینو چندبار دیدم نمیدونم الان هم هست یا نه در ورژن جدید تست نکردم) میتونید با معماری خیلی سبکتری تست کنید و باید ببینید که اونجا هم باید در 1080 کل فضای رم شما اشغال میشه.
کلا هر کارت گرافیکی استفاده کنید تقریبا همه فضاش رو بدون توجه به اینکه واقعا خود معماری چقدر مصرف داره اشغال میکنه.
آپدیت :
سرچی که کردم به موارد زیر رسیدم . طبق مستندات خود تنسورفلو برای اینکه این مشکل رو برطرف کنید دو راه دارید
1. در داخل کد مشخص کنید که بر اساس مصرف معماری حافظه اختصاص پیدا کنه . برای اینکار از کد زیر استفاده کنید
config = tf.ConfigProto()
config.gpu_options.allow_growth=True
sess = tf.Session(config=config)
فقط این نکته ای که داره اینه که گفتن در این حالت ما خودمون حافظه رو ازاد نمیکنیم چون اگ راینکارو بکنیم پرفورمنس خیلی بد میشه!
2) برای هر gpu در سیستم یک حد بالایی مشخص کنید مثلا 40% فضای حافظه کارتهای گرافیک قابل استفاده باشه برای اینکار باید از گزینه per_process_gpu_memory_fraction
در gpu_options
استفاده کنید و مقدار اون رو برابر درصد مورد نظر قرار بدید و بعد موقع ساخت session ازش استفاده کنید : مثل زیر : .
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.4
sess = tf.Session(config=config, ...)