Windows下用Stable Diffusion生成一幅深圳女孩圖,用時1分6.2秒。
生成的圖像
生成高清圖也沒有問題,若安裝有Ultrasharp算法。點擊圖像下,一排圖標的最后一個圖標(類似直角三角形)去放大,等上數秒就能生成分辨率2K及以上的圖像。
生成2K圖
2K圖
安裝簡單,僅安裝PyTorch部分,需要特別注意。
話不多說,我們上機器配置:12代i5 CPU, Nvidia gtx1650(半高)顯卡,4G顯存,16GB內存,512M SSD硬盤,安裝的是Windows 10操作系統。
系統配置
首先安裝Stable Diffusion。采用省時省力的繪世v2.8.4,大小將近7GB,有需要的可以艾特我。下載后解壓文件,有17G左右。點擊啟動器程序,應用啟動后會花些時間進行文件校驗和下載更新。
繪世界面
選擇N卡的CUDA。忽略顯存不足的提示。
返回點擊“一鍵啟動”按鈕。
前往安裝PyTorch
相似的版本太多,應該安裝哪一個版本?容易。
選擇Torch與Cuda版本
Nvida驅動安裝完成后,會在電腦托盤里生成一個控制圖標,點擊它。
打開Nvidia控制面板
查看系統信息
CUDA版本
我的是CUDA v12.2.79。選擇Torch匹配的CUDA的版本不要高于v12.2.79。我選擇Torch2.2.1兼容CUDA12.1。
Torch2.1.1與CUDA21.1
下載界面如下,有進度提示。
下載中
安裝成功。
安裝成功
點擊“一鍵啟動”按鈕啟動Stable Diffusion。
測試:
輸入提示詞和反向詞,使用默認設置,點擊“生成”按鈕,等上一分多鐘即可生成圖片。描述見文末。
最后,再分享一張,生成耗時1分3秒。
驗證2
生成深圳女孩的測試描述參考。
提示詞:
shenzhen city, smile,pink hair,black suit,(day:1.1),RAW,(8k,best quality, masterpiece:1.2),(photorealistic:1.4), octane render, complex 3d render ultra detailed, studio soft light, rim light, vibrant details, ultra detailed, detailed face,beautiful detailed eyes
反向詞:
dot on face,bra, panty, paintings, sketches,(worst quality:2), (normal quality:2),dot, mole, lowres, normal quaity, monochrome, grayscale, text, error,cropped, worst quality, low quality, jpeg artifacts, ugly, duplicate, morbid, mutilated, out of frame, extra fingers, mutated hands, pooly drawn hands, poorly drawn face, mutation, deformed, blurry, dehydrated, bad anatomy, bad proportions, extra limbs, cloned face, disfigured, gross proportions, malformed liimbs, missing arms, missing legs, extra arms, extra legs, fused fingers, too many fingers, long neck, username, watermark, signature,(mole:1.4),(deformed iris, deformed pupils, semi-realistic, cgi,3d, render, sketch, cartoon, drawing, anime,:1.4),text, close up, cropped, out of frame, worst quality, low quality, ipeg artifacts,ugly,duplicate, zoomed in
某品牌的RTX3060 PCB
在很多數碼論壇上,經常會有一些數碼愛好者抱怨、質疑這樣一個問題:為什么顯卡不能像電腦的內存(運行內存)和手機的內存(包括運行內存和存儲內存)那樣,可以自己自由靈活地擴充升級顯存呢?
有些朋友可能在給顯卡清灰的時候看到過類似圖一這種圖片,會感到更加困惑:顯卡的電路板上明明還有兩個空白的顯存顆粒焊接點,貌似還能再加兩顆顯存,那么,是不是只要再焊上兩顆同等規格的顯存,就能增加顯卡的總顯存容量呢?比如說,讓RTX 3060顯卡從之前的12GB顯存增加到16GB?
相信很多朋友都有類似的困惑,下面小編就用最通俗、最淺顯的語言來回答一下這個問題,如果中途碰到部分不理解的內容,可以先跳過繼續閱讀, 讀完之后你所有的困惑都將迎刃而解、一掃而光。
首先,“顯卡不能升級顯存”這種說法和認識是不嚴謹、錯誤的,嚴格來說,顯卡是可以升級顯存的,比如很多朋友都知道AMD的Radeon RX 580 4GB就可以升級成8GB版,GTX 1060 3GB可以升級成6GB版,還有俄羅斯極客成功將RTX 2080Ti 11GB顯存版升級至22GB顯存(圖二)。
但是,擴充升級顯存必須滿足一些先決條件,這些條件都比較苛刻,在現實中在大多數情況下都不滿足,沒有可行性和實際價值,所以才會有“顯卡不能升級顯存”這種說法。
要透徹地弄懂這個問題,首先要理解以下幾點:
一、顯卡搭配顯存的設計思路與電腦和手機的內存設計思路是完全不同的。
Core i5-13600K參數
首先說電腦,電腦能夠支持多大容量的內存最主要取決于內存控制器,——嚴格來說,還取決于很多因素,比如操作系統和主板。32位的Windows就不支持4GB以上的內存,但是現在32位的Windows基本上已經被淘汰了,都是64位的,所以這些因素在認討中暫時忽略。
比如說Core i5-13600K處理器支持128GB內存和兩個內存通道,主板廠商就為中端主流的B660主板設計了4個內存插槽, 低端的H610也支持兩個內存通道,但每個通道只支持一根內存,主板廠商就為其設計2個內存插槽。
在正常情況下,這種設計已經遠遠超過普通消費者的實際需求的上限了,一般用戶只會插一兩根內存,嫌內存容量小了,就再買再加,即使4根內存插槽全插滿了,還可以拔出一兩根,換成容量更大的內存插進去,只要沒超過128GB的上限值,內存之間不存在兼容問題,電腦也可以正常識別使用,靈活度很高。
對主板廠商來說,只為B660配備兩個內存插槽,限制內存總容量是沒有意義的,因為內存插槽更多,更能吸引用戶,主板可以賣得更貴,廠商不會這么做,同樣,為H610配置4個插槽也是沒有意義的,因為主板芯片組支持不了。
H610主板
再說手機,同一款設計方案的手機,廠商往往會推出多個運行內存和存儲內存的組合版本,比如說,6+128G、8+128G和8+256G等等。
這些不同版本的手機除了運行內存和存儲內存不同之外,其它幾乎所有的元器件都是相同的,在這種情況下,低內存(包括運行內存和存儲內存)容量版本的手機就有升級空間。比如把6G的運行內存拆下來換成8G,把128G存儲內存拆下來換成256G等等,然后再刷系統就可以正常識別使用,這個很好理解。
綜上所述,不管是電腦還是手機,最終成品所搭載的內存容量是遠遠小于整個設計方案可以支持的最高容量上限的,這是它們之所以有升級空間的關鍵前提,但是,顯卡的顯存的搭配設計思路與之是截然不同的,它往往是貼著某款顯卡設計方案所能支持的最高容量的上限來設計組合的。
二、顯卡所能支持的顯存容量的最高上限,是由什么決定的?怎么計算的?
RTX 3060 12GB版GPU
答案是GPU。請注意在很多場合和語境中,很多文章會把“GPU”和“顯卡”直接劃全等號,混用,其實這是不嚴謹的,大家一定要正確理解這二者之間的區別,“GPU”和CPU類似,它是顯卡中最核心的部件,但不等于成品“顯卡”。
衡量一款GPU的優劣有多個參數維度,比如說大家比較熟悉的流處理器數量、張量內核數量、光追單元數量等等,此外還有一個非常重要的參數就是“位寬”。大家可能經常會聽到120bit、128bit、192bit、256bit,320bit和384bit等等,這個參數直接決定著采用該GPU的顯卡到底可以搭配什么樣的顯存組合和顯存的最高容量。
比如說大家很熟悉的RTX 3060 12GB版,它的GPU為“GA106-300-A1”,位寬是192bit,目前主流的單顆顯存的位寬是32bit,192除以32答案是6,也就是說RTX 3060顯卡最多可以搭載6顆顯存,所以RTX 3060顯卡的電路板上一般有6個顯存焊位。
GA106-300-A1參數
現在主流的單顆顯存容量有1GB和2GB版兩種,以前還有512M和容量更小的,英偉達為RTX 3060配備了6顆2GB顯存,所以RTX 3060顯卡的總顯存容量就是12GB。
理解這個計算公式很多問題就好理解了,比如為什么RTX 3070 Ti所搭載的顯存是8GB呢?因為它所搭載的GA104-400-A1 GPU的位寬是256bit,可以搭配8顆1GB的顯存,如果搭配8顆2GB的顯存,那么就成了RTX 3070 Ti 16GB版了。
為什么RTX 4090的顯存是24GB呢?因為它采用的AD102-300-A1 GPU的位寬是384bit,可以搭配12顆2GB的顯存,累計在一起就是24GB顯存,以此類推。
RTX 3070 Ti GPU資料圖
有些朋友看到這里,可能會產生一些疑問:
1、現在的主流單顆顯存容量有1GB和2GB版兩種,那么為RTX 3060搭載6顆1GB的顯存,行不行?能不能支持?
答案是能支持,單純從技術的角度來說沒有問題,RTX 3060顯卡支持2GBX6和1GBX6這種顯存組合,當然BIOS也要做相應的調整修改。
但是這種做法的問題在于:既然RTX 3060顯卡可以搭載6顆2GB的顯存組成12GB的總顯存容量,可以擁有更高的性能,賣更高的價格,為什么要搭載6顆1GB的顯存,人為地讓RTX 3060顯卡的性能更低,售價也更低呢?——這不是自己和自己過不去嗎?很顯然,英偉達不會這樣做。
不過坊間確實有傳聞稱英偉達會推出RTX 3060 6GB,但是這種可能性極少,至于原因請繼續往下閱讀。
2、RTX 3060顯卡只支持6個顯存,那么為什么我看過一些某些顯卡的拆機圖(比如圖一),它的電路板上還有空白的顯存焊位呢?
這是因為顯卡廠商在設計電路板的時候為了降低成本,往往會讓多款顯卡共用一款電路板,不同型號的顯卡的元器件布局大致相同,只是核心的元器件不同而已。
比如RTX 3070 Ti顯卡可以支持8顆顯存,就可能會和RTX 3060花用一塊電路板,不同的廠商有不同的做法,因此,圖一中RTX 3060顯卡電路板上的兩個空白的顯存焊位,主要是為其它型號顯卡所預留的。
而RTX 3060顯卡只支持6顆顯存,所以這兩個空白顯存焊位即使加焊上去也是沒有意義的,這種做法相當于是給H610主板再新增兩個內存插槽。
3、RTX 3060只支持6顆顯存,要么采用6顆2GB的顯存組成12GB,要么采用6顆1GB的顯存組成6GB,為什么最近英偉達又推出了RTX 3060 8GB顯存版呢?
這個問題非常好,答案是RTX 3060 8GB顯存版雖然從名字上看與RTX 3060 12GB顯存版貌似只有顯存方面的區別,實際上并非如此,它們之間的區別很大。
RTX 3060 8GB顯存版的GPU已經換成了“GA106-302-A1”,在各方面都有一定幅度的縮水,其中就包括位寬。位寬從192bit降到了128bit,128除以32結果是4,也就是說RTX 3060 8GB顯存版只支持4顆顯存,英偉達為其配備了4顆容量為2GB的顯存,那么總顯存容量就是8GB,RTX 3060 8GB顯存版就是這么來的。
GA106-302-A1參數圖
另外,坊間之前確實有一種傳聞稱英偉達未來有可能會推出RTX 3060 6GB顯存版,可能也會采取類似的做法,對GPU包括位寬在內進一步縮水,但是再縮水對顯卡的性能影響就過大了,消費者未必會買單。
還有一種可能性是會采用類似GTX 1060 3GB和GTX 1060 6 GB的做法,不更換GPU,直接將原6顆2GB的顯存換成1G的,但是這兩種做法的可能性都不大,RTX 3060 6GB顯存版真正推出的可能性極小。
最后要補充強調的是,顯卡的GPU支持較高容量的顯存,人為地壓低、不堆滿的情況雖然比較少,但并不是絕對沒有,比如說大家很熟悉的GTX 1060 3GB和GTX 1060 6GB這兩款顯卡。
GTX 1060 3GB和6GB版的GPU
這兩款顯卡的GPU都是“GP106-400-A1”,位寬為192bit,支持6顆顯存,區別在于后者配備的是6顆1GB版顯存,而前者配備的是6顆512M的顯存,在這種情況下,GTX 1060 3GB版就有擴展升級顯存的空間。
類似的情況還有AMD的 Radeon RX 580 4GB和 RX 580 8GB,這兩款顯卡的GPU只有極細微的區別,而且位寬都是256bit的,4GB版的并未縮水,因此可以將8顆512M的顯存更換成8顆1GB的顯存,原4GB顯存版就可擴充升級到8GB版。
相反,GTX 1060 5GB就不同了,雖然叫與GTX 1060 3GB和GTX 1060 6 GB一樣的名字,但是其配備的GPU更換縮水了,更換成了“GP106-350-K3-A1”。位寬僅為160bit(因為GTX 1060 3GB的位寬更高,所以它的價格比GTX 1060 5GB貴),支持搭載5個1GB容量的顯存,GTX 1060 5GB版就是這么來的,它和RTX 3060 12GB版一樣,是沒有顯存升級空間的。
GTX 1060 5GB版的GPU
4、RTX 3070為什么沒有16GB顯存版?
有部分顯卡,比如RTX 3070,它的GPU是GA104-300-A1,位寬是256bit,支持8顆顯存,英偉達目前的設計方案是搭載8顆1GB版顯存,因此總顯存容量只有8GB。
但是它理論上仍然是支持采用8顆2GB版顯存的,可以支持16GB顯存,換句話也就是說,現有的RTX 3070理論上是有擴展升級顯存空間的。
至于目前英偉達沒有推出RTX 3070 16GB顯存可能有多種考慮因素,日后推出的可能性很大。
三、如果顯卡支持擴充升級顯存,應該怎么做?
第一步是要購買同類型的高容量版本的顯存。比如說你現在有一張GTX 1060 3GB版想升級至6GB版,那么就去查看GTX 1060 6GB搭載的是什么顯存,對著購買就行,然后把GTX 1060 3GB上的原顯存拆除,把新顯存焊好。
第二、要刷顯卡BIOS,這個就有點復雜了。如果要把GTX 1060 3GB的顯存升級為6GB版,這類升級比較簡單,因為廠商已經提供了高顯存容量版本顯卡的BIOS,直接刷進去就可以了,如果是廠商沒有提供的版本就很復雜了。
比如前文中提到的RTX 2080 11GB版,它所采用的TU102-300A-K1-A1 GPU的位寬是352bit,支持11顆顯存,極客將這11顆1GB顯存換成了11顆2GB顯存,從而組成了22GB顯存(注:RTX 2080還有一款12GB版,它的GPU是384bit的)。
但是英偉達并沒有發布這個版本的顯卡BIOS,這樣就只能去找第三方論壇尋找極客分享的修改版BIOS了,或者只能自己修改底層代碼,這項工作只有極少數專業人士才能做到,并且還不一定能保證完美兼容運行。
結論就是:一款顯卡到底搭載多少顯存,在設計的時候廠商就會通盤考慮,盡量讓顯卡擁有最高的性能,賣最高的價錢,這就是廠商的最高設計原則。
很多朋友理想中都期待這樣一幕場景:
RTX 3060最高可以支持12GB顯存,賣2499元的價格,老黃出廠時只焊了三顆顯存總共搭載了6GB顯存,只賣1999元,還有三個顯存接口空著,和電腦內存條一樣設計成了可插拔式。
用戶入手后,只要自己再買三個同規格的顯存插進去,就能升級到最高規格的12GB顯存版,這種事情在現實中是不可能發生的,不存在的。
還有極少數顯卡是可以升級顯存的,但是要考慮實際的包括物料和人工在內的總升級成本,這樣做基本沒有任何實際意義,升級總成本通常會比直接購買大容量顯存版更高,而且還會失去保修。
“顯卡不能升級顯存,沒有實際意義的最主要原因是,廠商在設計一款顯卡的時候,在主要的核心方案已經確定的情況下,會盡量把所有的配置(包括顯存)堆滿,讓顯卡擁有更高的性能,能賣最高的價錢,基本上沒有任何升級余地的,因此,對于普通消費者來說,自己動手擴充升級顯存只能是一個美好的愿望。