ቤት / ቢሮ / በጂፒዩ ግራፊክስ ካርድ ላይ ማዕድን ማውጣት - የተሟላ መመሪያ. የጂፒዩ ውጤታማ አጠቃቀም ለምን በተግባር አስተዳዳሪ ውስጥ ጂፒዩ የለኝም

በጂፒዩ ግራፊክስ ካርድ ላይ ማዕድን ማውጣት - የተሟላ መመሪያ. የጂፒዩ ውጤታማ አጠቃቀም ለምን በተግባር አስተዳዳሪ ውስጥ ጂፒዩ የለኝም

አፕሊኬሽኑ እንዳይቀንስ ወይም አላስፈላጊ ስራ እንዳይሰራ ገንቢው የመሳሪያውን ግራፊክስ ማቀነባበሪያ ክፍል (ጂፒዩ) በብቃት መጠቀምን መማር አለበት።

የጂፒዩ ቀረጻ ቅንብሮችን ያዋቅሩ

መተግበሪያዎ ቀርፋፋ ከሆነ፣ ይህ ማለት አንዳንድ ወይም ሁሉም የስክሪኑ የማደስ ክፈፎች ለማደስ ከ16 ሚሊ ሰከንድ በላይ እየወሰዱ ነው ማለት ነው። በስክሪኑ ላይ የፍሬም ማሻሻያዎችን በእይታ ለማየት በመሳሪያው ላይ ልዩ አማራጭን (የመገለጫ ጂፒዩ አቀራረብ) ማንቃት ይችላሉ።

ፍሬሞችን ለመስራት ምን ያህል ጊዜ እንደሚወስድ በፍጥነት ማየት ይችላሉ። በ16 ሚሊሰከንዶች ውስጥ ማስቀመጥ እንዳለቦት ላስታውስህ።

አማራጩ በአንድሮይድ 4.1 በሚጀምሩ መሳሪያዎች ላይ ይገኛል። የገንቢ ሁነታ በመሣሪያው ላይ መንቃት አለበት። ስሪት 4.2 እና ከዚያ በላይ ባላቸው መሳሪያዎች ላይ ሁነታው በነባሪነት ተደብቋል። ለማግበር ወደ ይሂዱ ቅንብሮች | ስለ ስልኩእና በመስመር ላይ ሰባት ጊዜ ጠቅ ያድርጉ የግንባታ ቁጥር.

ከማግበር በኋላ ወደ ይሂዱ የገንቢ አማራጮችእና ነጥቡን ያግኙ የጂፒዩ ቀረጻ ቅንብሮችን ያዋቅሩ(የመገለጫ ጂፒዩ አቀራረብ) መንቃት ያለበት። በብቅ ባዩ መስኮቱ ውስጥ አማራጩን ይምረጡ በማያ ገጹ ላይ በአምዶች መልክ(በማያ ላይ እንደ አሞሌዎች)። በዚህ አጋጣሚ ግራፉ በሂደቱ ላይ ባለው መተግበሪያ ላይ ይታያል.

ማመልከቻዎን ብቻ ሳይሆን ሌሎችንም መሞከር ይችላሉ. ማንኛውንም መተግበሪያ ያስጀምሩ እና ከእሱ ጋር መስራት ይጀምሩ. በሚሰሩበት ጊዜ, በማያ ገጹ ግርጌ ላይ የተሻሻለ ግራፍ ያያሉ. አግድም ዘንግ ያለፈ ጊዜን ይወክላል። ቀጥ ያለ ዘንግ ለእያንዳንዱ ፍሬም ጊዜውን በሚሊሰከንዶች ያሳያል። ከመተግበሪያው ጋር በሚገናኙበት ጊዜ, ቋሚ አሞሌዎች በማያ ገጹ ላይ ይሳሉ, ከግራ ወደ ቀኝ ይታያሉ, በጊዜ ሂደት የፍሬም አፈጻጸምን ያሳያሉ. እያንዳንዱ እንደዚህ ያለ አምድ ማያ ገጹን ለመሳል አንድ ፍሬም ይወክላል። የዓምዱ ቁመት ከፍ ባለ መጠን, ለመሳል ብዙ ጊዜ ይወስዳል. ቀጭኑ አረንጓዴ መስመር መመሪያ ሲሆን በእያንዳንዱ ክፈፍ ከ16 ሚሊሰከንዶች ጋር ይዛመዳል። ስለዚህ ማመልከቻዎን በሚያጠኑበት ጊዜ ግራፉ ከዚህ መስመር በላይ እንዳይሄድ ለማድረግ መጣር ያስፈልግዎታል።

የግራፉን ትልቅ ስሪት እንይ።

አረንጓዴው መስመር ለ16 ሚሊሰከንዶች ተጠያቂ ነው። በሰከንድ በ60 ክፈፎች ውስጥ ለመቆየት እያንዳንዱ የግራፍ አሞሌ ከዚህ መስመር በታች መሳል አለበት። በአንዳንድ ቦታዎች, ዓምዱ በጣም ትልቅ እና ከአረንጓዴው መስመር በጣም ከፍ ያለ ይሆናል. ይህ ማለት ፕሮግራሙ እየቀነሰ ነው ማለት ነው. እያንዳንዱ አምድ ሲያን, ሐምራዊ (ሎሊፖፕ እና በላይ), ቀይ እና ብርቱካንማ አለው.

ሰማያዊ ቀለም ለመፍጠር እና ለማዘመን ጥቅም ላይ የዋለው ጊዜ ተጠያቂ ነው ይመልከቱ.

ሐምራዊው ክፍል የክርን የመስሪያ ሀብቶች በማስተላለፍ ያሳለፈውን ጊዜ ይወክላል።

ቀይ ቀለም ለመሳል ጊዜን ይወክላል.

ብርቱካንማ ቀለም ጂፒዩ ስራውን እስኪያጠናቅቅ ድረስ ለመጠበቅ ሲፒዩ ምን ያህል ጊዜ እንደፈጀ ያሳያል። ይህ በትላልቅ ዋጋዎች የችግሮች ምንጭ ነው.

በጂፒዩ ላይ ያለውን ጭነት ለመቀነስ ልዩ ዘዴዎች አሉ.

የጂፒዩ ከመጠን በላይ መሳል አመልካች ማረም

ሌላ ቅንብር ተመሳሳይ የስክሪኑ ቦታ ምን ያህል ጊዜ እንደገና እንደሚዘጋጅ ያሳውቅዎታል (ማለትም፣ ተጨማሪ ስራ ተከናውኗል)። እንደገና እንሂድ የገንቢ አማራጮችእና ነጥቡን ያግኙ የጂፒዩ ከመጠን በላይ መሳል አመልካች ማረም(ጂፒዩ ከመጠን በላይ መሳልን ማረም) መንቃት ያለበት። በብቅ ባዩ መስኮቱ ውስጥ አማራጩን ይምረጡ ተደራቢ ዞኖችን አሳይ(ከመጠን በላይ የተሳቡ ቦታዎችን አሳይ)። አትፍራ! በማያ ገጹ ላይ ያሉ አንዳንድ ንጥረ ነገሮች ቀለም ይለወጣሉ።

ወደ ማንኛውም መተግበሪያ ይመለሱ እና ሲሰራ ይመልከቱ። ቀለሙ በመተግበሪያዎ ውስጥ የችግር ቦታዎችን ያሳያል።

በመተግበሪያው ውስጥ ያለው ቀለም ካልተቀየረ, ሁሉም ነገር ጥሩ ነው. በአንዱ ላይ የአንዱ ቀለም ሽፋን የለም.

ሰማያዊው ቀለም የሚያመለክተው አንድ ንብርብር በታችኛው ሽፋን ላይ እየተሳበ ነው. ጥሩ።

አረንጓዴ ቀለም - ሁለት ጊዜ ቀይ. ስለ ማመቻቸት ማሰብ አለብዎት.

ሮዝ ቀለም - ሦስት ጊዜ ቀይ. ሁሉም ነገር በጣም መጥፎ ነው.

ቀይ ቀለም - ብዙ ጊዜ ቀይሯል. የሆነ ችግር ተፈጥሯል።

የችግር ቦታዎችን ለማግኘት ማመልከቻዎን እራስዎ ማረጋገጥ ይችላሉ። አንድ እንቅስቃሴ ይፍጠሩ እና አንድ አካል በእሱ ላይ ያስቀምጡ የጽሑፍ እይታ. የስር ኤለመንት እና የጽሑፍ መለያ በባህሪው ውስጥ የተወሰነ ዳራ ይስጡ android: ዳራ. የሚከተለውን ያገኛሉ፡ በመጀመሪያ የታችኛውን የእንቅስቃሴ ንብርብር በአንድ ቀለም ቀባህ። ከዚያም በላዩ ላይ አዲስ ንብርብር ከ ይሳሉ የጽሑፍ እይታ. በነገራችን ላይ, በእውነቱ የጽሑፍ እይታጽሑፍም ተሣልቷል።

በአንዳንድ ቦታዎች, ተደራራቢ ቀለሞችን ማስወገድ አይቻልም. ግን የዝርዝሩን ዳራ በተመሳሳይ መንገድ እንዳዘጋጁ አስብ ዝርዝር እይታ, ይህም ሙሉውን የእንቅስቃሴ ቦታ ይይዛል. ምንም እንኳን ተጠቃሚው የታችኛውን የእንቅስቃሴ ንብርብር ማየት ባይችልም ስርዓቱ ድርብ ግዴታን ይሰራል። እና በተጨማሪ ፣ ለእያንዳንዱ የዝርዝሩ አካል የራሱ ዳራ ያለው የራስዎን ምልክት ከፈጠሩ በአጠቃላይ ከመጠን በላይ መጨናነቅ ያገኛሉ።

ትንሽ ምክር። ዘዴ በኋላ ቦታ የይዘት እይታ()ስክሪኑን በገጽታ ቀለም ከመቀባት የሚያስወግድ ዘዴን በመጥራት። ይህ አንድ ተጨማሪ የቀለም ሽፋን ለማስወገድ ይረዳል፡-

GetWindow () .setBackgroundDrawable (ኑል);

ጂፒዩ ማስላትን ከC++ AMP ጋር መጠቀም

እስካሁን ድረስ፣ ትይዩ የፕሮግራም አወጣጥ ቴክኒኮችን ስንወያይ፣ ፕሮሰሰር ኮሮችን ብቻ ተመልክተናል። መቆለፊያዎችን ሳንጠቀም ፕሮግራሞችን በበርካታ ፕሮሰሰር በማመሳሰል ፣የጋራ ሀብቶችን ተደራሽነት በማመሳሰል እና ባለከፍተኛ ፍጥነት ማመሳሰልን በመጠቀም አንዳንድ ችሎታዎችን አግኝተናል።

ሆኖም ፕሮግራሞችን ለማዛመድ ሌላ መንገድ አለ - ግራፊክስ ማቀነባበሪያ ክፍሎች (ጂፒዩዎች)ከፍተኛ አፈጻጸም ካላቸው ፕሮሰሰሮች የበለጠ ብዙ ኮርሞች አሉት። የጂፒዩ ኮሮች ትይዩ የመረጃ ማቀነባበሪያ ስልተ ቀመሮችን ለመተግበር በጣም ጥሩ ናቸው፣ እና ትልቅ ቁጥራቸው በእነሱ ላይ ፕሮግራሞችን ለማስኬድ ምቾት ከሚከፍለው በላይ ነው። በዚህ ጽሁፍ ውስጥ የC++ ቋንቋ ቅጥያዎችን በመጠቀም በጂፒዩ ላይ ፕሮግራሞችን ለማስኬድ ከሚያስችሉ መንገዶች አንዱን እናውቃለን። C++AMP.

የ C++ AMP ቅጥያዎች በ C++ ቋንቋ ላይ የተመሰረቱ ናቸው, ለዚህም ነው ይህ ጽሑፍ በ C ++ ውስጥ ምሳሌዎችን ያሳያል. ነገር ግን፣ በ ውስጥ የመስተጋብር ዘዴን መጠነኛ አጠቃቀም። NET፣ በእርስዎ .NET ፕሮግራሞች ውስጥ የC++ AMP ስልተ ቀመሮችን መጠቀም ይችላሉ። ግን ስለዚህ ጉዳይ በአንቀጹ መጨረሻ ላይ እንነጋገራለን.

የC++ AMP መግቢያ

በመሠረቱ፣ ጂፒዩ እንደማንኛውም ፕሮሰሰር ነው፣ ነገር ግን በልዩ የመመሪያ ስብስብ፣ ብዛት ያላቸው ኮሮች እና የራሱ የማህደረ ትውስታ መዳረሻ ፕሮቶኮል ነው። ይሁን እንጂ በዘመናዊ ጂፒዩዎች እና በተለመዱ ፕሮሰሰሮች መካከል ትልቅ ልዩነቶች አሉ እና እነሱን መረዳት የኮምፒዩተር ሃይልን በብቃት የሚጠቀሙ ፕሮግራሞችን ለመፍጠር ቁልፍ ነው። ጂፒዩ.

    ዘመናዊ ጂፒዩዎች በጣም ትንሽ የማስተማሪያ ስብስብ አላቸው። ይህ አንዳንድ ገደቦችን ያሳያል፡ ተግባራትን የመጥራት አቅም ማጣት፣ የተገደቡ የሚደገፉ የውሂብ አይነቶች ስብስብ፣ የቤተ-መጽሐፍት ተግባራት እጥረት እና ሌሎች። እንደ ሁኔታዊ ቅርንጫፎች ያሉ አንዳንድ ክዋኔዎች በተለመደው ማቀነባበሪያዎች ላይ ከሚደረጉ ተመሳሳይ ስራዎች የበለጠ ዋጋ ሊጠይቁ ይችላሉ. በግልጽ ለማየት እንደሚቻለው, እንደዚህ ባሉ ሁኔታዎች ውስጥ ከፍተኛ መጠን ያለው ኮድ ከሲፒዩ ወደ ጂፒዩ መውሰድ ከፍተኛ ጥረት ይጠይቃል.

    በአማካይ ጂፒዩ ውስጥ ያሉት የኮሮች ብዛት ከአማካይ ከተለመደው ፕሮሰሰር በእጅጉ ከፍ ያለ ነው። ሆኖም፣ አንዳንድ ስራዎች በጣም ትንሽ ናቸው ወይም ከጂፒዩ ጥቅም ለማግኘት ወደ ትላልቅ ክፍሎች ሊከፋፈሉ አይችሉም።

    ተመሳሳዩን ተግባር በሚያከናውኑ የጂፒዩ ኮሮች መካከል የማመሳሰል ድጋፍ በጣም ደካማ ነው፣ እና የተለያዩ ተግባራትን በሚያከናውኑ ጂፒዩ ኮሮች መካከል ሙሉ በሙሉ አይገኝም። ይህ ሁኔታ የግራፊክስ ፕሮሰሰርን ከተለመደው ፕሮሰሰር ጋር ማመሳሰልን ይጠይቃል።

ጥያቄው ወዲያውኑ ይነሳል-በጂፒዩ ላይ ለመፍታት ምን ተግባራት ተስማሚ ናቸው? እያንዳንዱ አልጎሪዝም በጂፒዩ ላይ ለማስፈጸም ተስማሚ እንዳልሆነ ያስታውሱ. ለምሳሌ ጂፒዩዎች የI/O መሳሪያዎች የላቸውም፣ስለዚህ ጂፒዩ በመጠቀም የአርኤስኤስ ምግቦችን ከበይነ መረብ ላይ የሚሰርዝ ፕሮግራም አፈጻጸምን ማሻሻል አትችልም። ነገር ግን፣ ብዙ የስሌት ስልተ ቀመሮች ወደ ጂፒዩ ሊተላለፉ እና በጅምላ ሊመሳሰሉ ይችላሉ። ከዚህ በታች እንደዚህ ያሉ ስልተ ቀመሮች ጥቂት ምሳሌዎች አሉ (ይህ ዝርዝር በምንም መልኩ የተሟላ አይደለም)

    የምስሎች ጥርትነት መጨመር እና መቀነስ, እና ሌሎች ለውጦች;

    ፈጣን የፎሪየር ሽግግር;

    ማትሪክስ ሽግግር እና ማባዛት;

    የቁጥር መደርደር;

    ቀጥተኛ የሃሽ መገለባበጥ.

ለተጨማሪ ምሳሌዎች እጅግ በጣም ጥሩው ምንጭ የማይክሮሶፍት ተወላጅ ኮንኩሬሲዮን ብሎግ ሲሆን በC++ AMP ውስጥ ለሚተገበሩ የተለያዩ ስልተ ቀመሮች የኮድ ቅንጣቢዎችን እና ማብራሪያዎችን ይሰጣል።

C++ AMP ከ Visual Studio 2012 ጋር የተካተተ ማዕቀፍ ሲሆን ለ C++ ገንቢዎች በጂፒዩ ላይ ስሌቶችን ለመስራት ቀላል መንገድ የሚሰጥ ሲሆን ይህም ዳይሬክትኤክስ 11 ሾፌር ብቻ ይፈልጋል።

የC++ AMP ማዕቀፍ ኮድ እንዲያስገቡ ይፈቅድልዎታል። ግራፊክስ accelerators, የኮምፒዩተር መሳሪያዎች ናቸው. የዳይሬክትኤክስ 11 ሾፌርን በመጠቀም፣ የC++ AMP ማዕቀፍ ሁሉንም አፋጣኝ መጨመሪያዎችን በተለዋዋጭ ፈልጎ ያገኛል። C++ AMP በተጨማሪም የሶፍትዌር አፋጣኝ ኢሙሌተር እና የተለመደ ፕሮሰሰር ላይ የተመሰረተ ኢሙሌተር WARP፣ ያለ ጂፒዩ ወይም ጂፒዩ በሌለበት ሲስተሞች ላይ እንደ ውድቀት የሚያገለግል ነገር ግን ዳይሬክትኤክስ 11 ሾፌር የሌለው እና በርካታ ኮሮች እና የሲምዲ መመሪያዎችን ይጠቀማል።

አሁን በጂፒዩ ላይ ለመፈጸም በቀላሉ ሊመሳሰል የሚችል አልጎሪዝምን ማሰስ እንጀምር። ከታች ያለው አተገባበር እኩል ርዝመት ያላቸው ሁለት ቬክተሮችን ይወስዳል እና ውጤቱን በትክክል ያሰላል. የበለጠ ግልጽ የሆነ ነገር መገመት ከባድ ነው፡-

ባዶ VectorAddExpPointwise (ተንሳፋፊ * መጀመሪያ፣ ተንሳፋፊ * ሰከንድ፣ ተንሳፋፊ* ውጤት፣ ኢንት ርዝመት) (ለ (int i = 0; i< length; ++i) { result[i] = first[i] + exp(second[i]); } }

ይህንን ስልተ ቀመር በመደበኛ ፕሮሰሰር ላይ ለማመሳሰል የድግግሞሹን ክልል ወደ ብዙ ንዑስ ክፍሎች መክፈል እና ለእያንዳንዳቸው አንድ የአፈፃፀም ክር ማሄድ ያስፈልግዎታል። የመጀመሪያውን የፍለጋ ምሳሌያችንን በትክክል ለማዛመድ በዚህ ዘዴ በቀደሙት ጽሁፎች ላይ ብዙ ጊዜ ሰጥተናል ዋና ቁጥሮች- ክሮች በእጅ በመፍጠር፣ ስራዎችን ወደ ክር ገንዳ በማስተላለፍ እና Parallel.For እና PLINQን በመጠቀም በራስ-ሰር ትይዩ በማድረግ ይህንን እንዴት ማድረግ እንደሚችሉ አይተናል። በተለመደው ፕሮሰሰር ላይ ተመሳሳይ ስልተ ቀመሮችን በትይዩ ስናደርግ፣ ችግሩን ወደ ትናንሽ ስራዎች እንዳይከፋፍል ልዩ ጥንቃቄ እንደወሰድን ያስታውሱ።

ለጂፒዩ እነዚህ ማስጠንቀቂያዎች አያስፈልጉም። ጂፒዩዎች ክሮችን በፍጥነት የሚያስፈፅሙ በርካታ ኮርሎች አሏቸው፣ እና የአውድ መቀያየር ዋጋ ከተለመደው ፕሮሰሰር በእጅጉ ያነሰ ነው። ከዚህ በታች ተግባሩን ለመጠቀም የሚሞክር ቅንጣቢ ነው። ትይዩ_ለእያንዳንዱከC++ AMP ማዕቀፍ፡-

#ያካትቱ #ያካትቱ የስም ቦታ መመሳሰልን በመጠቀም; ባዶ VectorAddExpPointwise(ተንሳፋፊ* መጀመሪያ፣ ተንሳፋፊ* ሰከንድ፣ ተንሳፋፊ* ውጤት፣ ኢንት ርዝመት) ( ድርድር_እይታ avFirst (ርዝመት, መጀመሪያ); የድርድር_እይታ avSecond (ርዝመት, ሁለተኛ);<1>i) መገደብ (amp) ( avResult [i] = avFirst [i] + fast_math :: exp(avSecond [i]); ));

avResult.synchronize (); )

አሁን እያንዳንዱን የኮዱን ክፍል ለየብቻ እንመርምር። ወዲያውኑ እናስተውል የዋናው ሉፕ አጠቃላይ ቅፅ ተጠብቆ ቆይቷል፣ ነገር ግን መጀመሪያ ላይ ጥቅም ላይ የዋለው ሉፕ ለእያንዳንዱ ተግባር ወደ ትይዩ_ጥሪ ተተክቷል። እንደ እውነቱ ከሆነ, loopን ወደ ተግባር ወይም ዘዴ ጥሪ የመቀየር መርህ ለእኛ አዲስ አይደለም - እንዲህ ዓይነቱ ዘዴ ከዚህ ቀደም ከTPL ቤተ-መጽሐፍት ውስጥ የሚገኙትን Parallel.For () እና Parallel.ForEach () ዘዴዎችን በመጠቀም ታይቷል. በመቀጠል የግቤት ውሂቡ (መለኪያዎች መጀመሪያ, ሁለተኛ እና ውጤት) በምሳሌዎች ይጠቀለላሉየድርድር_እይታ

. የarray_view ክፍል ወደ ጂፒዩ (አፋጣኝ) የተላለፈውን መረጃ ለመጠቅለል ይጠቅማል። የአብነት መለኪያው የውሂብ አይነት እና መጠኑን ይገልጻል። በጂፒዩ ላይ መመሪያዎችን ለማስፈጸም በመጀመሪያ በተለመደው ሲፒዩ የተሰራውን መረጃ ለማግኘት አንድ ሰው ወይም የሆነ ነገር መረጃውን ወደ ጂፒዩ ለመቅዳት ጥንቃቄ ማድረግ አለባቸው ምክንያቱም አብዛኛዎቹ ዘመናዊ ግራፊክስ ካርዶች የራሳቸው ማህደረ ትውስታ ያላቸው መሳሪያዎች ናቸው. የarray_view ምሳሌዎች ይህንን ችግር ይፈታሉ - በፍላጎት ውሂብ መቅዳትን ይሰጣሉ እና በእውነቱ በሚያስፈልግ ጊዜ ብቻ። ጂፒዩ ተግባሩን ሲያጠናቅቅ ውሂቡ ተመልሶ ይገለበጣል። array_viewን ከኮንስት ነጋሪ እሴት ጋር በማፋጠን አንደኛ እና ሁለተኛ ወደ ጂፒዩ ማህደረ ትውስታ መገለባበጣቸውን እናረጋግጣለን ነገርግን ወደ ኋላ አልተቀዳም። በተመሳሳይ, በመደወልውሂብ አስወግድ()

ውጤቱን ከመደበኛ ፕሮሰሰር ማህደረ ትውስታ ወደ አፋጣኝ ማህደረ ትውስታ እናስወግዳለን ፣ ግን ይህ መረጃ በተቃራኒ አቅጣጫ ይገለበጣል።

ትይዩ_ለእያንዳንዱ ተግባር የመረጃውን ቅርፅ የሚገልጽ እና በመጠን መጠኑ ውስጥ በእያንዳንዱ አካል ላይ የሚተገበር ተግባርን የሚገልጽ የመጠን ነገርን ይወስዳል። ከላይ ባለው ምሳሌ, በ ISO C ++2011 (C ++11) መስፈርት ውስጥ የታየውን የላምዳ ተግባርን እንጠቀማለን. የተግባር አካል በጂፒዩ ላይ መፈጸሙን እና አለመሆኑን እንዲያጣራ የገዳቢው (amp) ቁልፍ ቃሉን ያስተምራል እና ወደ ጂፒዩ መመሪያዎች ሊጣመሩ የማይችሉትን አብዛኛዎቹን የC++ አገባቦች ያሰናክላል።<1>Lambda ተግባር መለኪያ, ኢንዴክስ

በመጨረሻም ዘዴው ይደውሉ አመሳስል()በVectorAddExpPointwise ዘዴ መጨረሻ ላይ፣ ከ array_view avResult፣ በጂፒዩ የተሰራው የስሌቱ ውጤቶች ወደ የውጤት ድርድር መመለሳቸውን ያረጋግጣል።

ይህ የC++ AMP ዓለም የመጀመሪያ መግቢያችንን ያጠናቅቃል፣ እና አሁን ለበለጠ ዝርዝር ምርምር ተዘጋጅተናል፣ እንዲሁም በጂፒዩ ላይ ትይዩ ማስላትን መጠቀም ያለውን ጥቅም የሚያሳዩ ይበልጥ አስደሳች ምሳሌዎችን ለማግኘት ዝግጁ ነን። የቬክተር መደመር ጥሩ አልጎሪዝም አይደለም እና በትልቅ የውሂብ ቅጂ ምክንያት የጂፒዩ አጠቃቀምን ለማሳየት ምርጡ እጩ አይደለም። የሚቀጥለው ንዑስ ክፍል ሁለት ተጨማሪ አስደሳች ምሳሌዎችን ያሳያል።

ማትሪክስ ማባዛት።

እኛ የምንመለከተው የመጀመሪያው "እውነተኛ" ምሳሌ ማትሪክስ ማባዛት ነው. ለትግበራ፣ ቀላል ኪዩቢክ ማትሪክስ ብዜት አልጎሪዝም እንወስዳለን፣ እና የ Strassen አልጎሪዝምን አንወስድም፣ እሱም የማስፈጸሚያ ጊዜ ወደ ኪዩቢክ ~O(n 2.807) ቅርብ ነው። ሁለት ማትሪክስ፣ m x w ማትሪክስ A እና w x n ማትሪክስ ቢ፣ የሚከተለው ፕሮግራም ያባዛቸዋል እና ውጤቱን ይመልሳል፣ m x n matrix C፡

ባዶ ማትሪክስ ማባዛት (int* A፣ int m፣ int w፣ int* B፣ int n፣ int* C) (ለ (int i = 0; i< m; ++i) { for (int j = 0; j < n; ++j) { int sum = 0; for (int k = 0; k < w; ++k) { sum += A * B; } C = sum; } } }

ይህንን ትግበራ ትይዩ ለማድረግ ብዙ መንገዶች አሉ ፣ እና ይህንን ኮድ በመደበኛ ፕሮሰሰር ላይ ለማስኬድ ትይዩ ለማድረግ ከፈለጉ ትክክለኛው ምርጫ የውጪውን ዑደት ትይዩ ይሆናል። ነገር ግን፣ ጂፒዩ እጅግ በጣም ብዙ የሆኑ ኮሮች አሉት፣ እና የውጪውን ዑደት ብቻ በትይዩ በማድረግ ሁሉንም ኮሮች ከስራ ጋር ለመጫን በቂ የስራ እድል መፍጠር አንችልም። ስለዚህ፣ የውስጥ ምልልሱን ሳይነካ በመተው ሁለቱን የውጪ ዑደቶች ማመሳሰል ተገቢ ነው።

ባዶ ማትሪክስ ማባዛት (int* A፣ int m፣ int w፣ int* B፣ int n፣ int* C) ( ድርድር_ዕይታ avA(m፣ w፣ A); የድርድር_እይታ avB(ወ፣ n፣ቢ);<2>የድርድር_እይታ< w; ++k) { sum + = avA(idx*w, k) * avB(k*w, idx); } avC = sum; }); }

ይህ አተገባበር አሁንም የማትሪክስ ብዜት ቅደም ተከተል አተገባበርን እና ከላይ ከተጠቀሰው የቬክተር የመደመር ምሳሌ ጋር በቅርብ ይመሳሰላል ፣ ከመረጃ ጠቋሚው በስተቀር ፣ አሁን ባለ ሁለት ገጽታ እና ኦፕሬተሩን በመጠቀም ወደ ውስጠኛው ዑደት ተደራሽ ነው። ይህ ስሪት በመደበኛ ፕሮሰሰር ላይ ከሚሰራው ተከታታይ አማራጭ ምን ያህል ፈጣን ነው? ሁለት ማትሪክስ (ኢንቲጀር) መጠን 1024 x 1024 ማባዛት, በመደበኛ ሲፒዩ ላይ ያለው ተከታታይ ስሪት በአማካይ 7350 ሚሊሰከንዶች ይወስዳል, የጂፒዩ ስሪት - አጥብቀው ይያዙ - 50 ሚሊሰከንዶች, 147 ጊዜ በፍጥነት ይወስዳል!

ቅንጣት እንቅስቃሴ ማስመሰል

ከላይ የቀረቡት በጂፒዩ ላይ ያሉ ችግሮችን የመፍታት ምሳሌዎች በጣም ቀላል የውስጣዊ ዑደት አተገባበር አላቸው። ይህ ሁልጊዜ እንደማይሆን ግልጽ ነው. ከላይ የተገናኘው የNative Concurrency ብሎግ በንጥሎች መካከል ያለውን የስበት መስተጋብር ሞዴል የማድረግ ምሳሌ ያሳያል። ማስመሰል ማለቂያ የሌለው የእርምጃዎች ብዛት ያካትታል; በእያንዳንዱ ደረጃ ፣ የፍጥነት ቬክተር ንጥረ ነገሮች አዲስ እሴቶች ለእያንዳንዱ ቅንጣት ይሰላሉ እና ከዚያ አዲሶቹ መጋጠሚያዎቻቸው ይወሰናሉ። እዚህ, ቅንጣቢው ቬክተር ትይዩ ነው - በበቂ ሁኔታ ብዙ ቁጥር ያላቸው ቅንጣቶች (ከበርካታ ሺዎች እና ከዚያ በላይ), ሁሉንም የጂፒዩ ኮሮች ከስራ ጋር ለመጫን በቂ የሆነ ከፍተኛ ቁጥር መፍጠር ይችላሉ.

የአልጎሪዝም መሠረት በቀላሉ ወደ ጂፒዩ ሊተላለፉ በሚችሉት በሁለት ቅንጣቶች መካከል ያለውን መስተጋብር ውጤት የመወሰን ትግበራ ነው።

// እዚህ float4 አራት ንጥረ ነገሮች ያሏቸው ቬክተሮች ናቸው // በኦፕራሲዮኑ ባዶ የሰውነት አካል መስተጋብር (float4& acceleration, const float4 p1, const float4 p2) restrict (amp) (float4 dist = p2 – p1; // ምንም w እዚህ ጥቅም ላይ ውሏል) float absDist = dist.x * dist.x + dist.y * dist.y + dist.z *dist.z; float invDistCube = invDist * invDist * invDist; PARTICLE_MASS*invDistCube )

በእያንዳንዱ የሞዴሊንግ ደረጃ ላይ ያለው የመነሻ መረጃ ከቅንጣቶች መጋጠሚያዎች እና ፍጥነቶች ጋር ድርድር ነው ፣ እና በስሌቶች ምክንያት ፣ የቅንጣቶች መጋጠሚያዎች እና ፍጥነቶች አዲስ ድርድር ተፈጠረ።

የመዋቅር ቅንጣት (float4 አቀማመጥ, ፍጥነት; // የግንባታ አተገባበር, ኮፒ ገንቢ እና // ኦፕሬተር = ከገደብ (amp) ጋር ቦታን ለመቆጠብ የተተወ); ባዶ የማስመሰል_ደረጃ (ድርድር & ቀዳሚ፣ ድርድር እና ቀጣይ፣ int አካላት) (መጠን<1>ext (አካላት);<1>idx) መገደብ (amp) ( ቅንጣት p = ቀዳሚ፤ ተንሳፋፊ 4 ማጣደፍ (0፣ 0፣ 0፣ 0)፤ ለ (int አካል = 0፤ አካል< bodies; ++body) { bodybody_interaction (acceleration, p.position, previous.position); } p.velocity + = acceleration*DELTA_TIME; p.position + = p.velocity*DELTA_TIME; next = p; }); }

በተገቢው የግራፊክ በይነገጽ እገዛ, ሞዴል መስራት በጣም አስደሳች ሊሆን ይችላል. በC++ AMP ቡድን የቀረበው ሙሉ ምሳሌ በNative Concurrency ብሎግ ላይ ይገኛል። በእኔ ስርዓት ላይ ኢንቴል ኮር i7 ፕሮሰሰር እና Geforce GT 740M ግራፊክስ ካርድ ያለው የ10,000 ቅንጣቶች ማስመሰል በ~2.5fps (እርምጃዎች በሰከንድ) በመደበኛ ፕሮሰሰር ላይ የሚሰራውን ተከታታይ ስሪት በመጠቀም እና 160fps የተመቻቸ ስሪት እየሮጠ ነው። በጂፒዩ ላይ - ከፍተኛ የአፈፃፀም መጨመር.

ይህን ክፍል ከማጠቃለልዎ በፊት፣ በጂፒዩ ላይ የሚሰራውን የኮድ አፈጻጸም የበለጠ ሊያሻሽል የሚችል የC++ AMP ማዕቀፍ አንድ ተጨማሪ ጠቃሚ ባህሪ አለ። ጂፒዩዎች ይደግፋሉ ፕሮግራም ሊደረግ የሚችል የውሂብ መሸጎጫ(ብዙውን ጊዜ ይባላል የጋራ ማህደረ ትውስታ). በዚህ መሸጎጫ ውስጥ የተከማቹ እሴቶች በአንድ ንጣፍ ውስጥ በሁሉም የማስፈጸሚያ ክሮች ይጋራሉ። የማስታወሻ ማቆርቆር ምስጋና ይግባውና በC++ AMP ማዕቀፍ ላይ የተመሰረቱ ፕሮግራሞች ከግራፊክስ ካርድ ማህደረ ትውስታ ወደ ሞዛይክ የጋራ ማህደረ ትውስታ ውስጥ መረጃን ማንበብ እና ከዚያ በኋላ ውሂቡን ከግራፊክስ ካርድ ማህደረ ትውስታ እንደገና ሳያነሱ ከበርካታ የአፈፃፀም ክሮች ማግኘት ይችላሉ። የሞዛይክ የጋራ ማህደረ ትውስታን መድረስ ከግራፊክስ ካርድ ማህደረ ትውስታ በግምት 10 እጥፍ ፈጣን ነው። በሌላ አገላለጽ፣ ማንበብ ለመቀጠል ምክንያቶች አሉዎት።

የትይዩ loop ንጣፍ ስሪት ለማቅረብ፣ ለእያንዳንዱ ዘዴ ትይዩ_ለ domain tiled_extent፣ ባለብዙ ልኬት መጠን ዕቃውን ወደ ባለ ብዙ ዳይሜንሽን ሰቆች የሚከፋፍል ፣ እና የታይል_ኢንዴክስ ላምዳ መለኪያ ፣ ይህም በሰድር ውስጥ ያለውን ክር ዓለም አቀፍ እና አካባቢያዊ መታወቂያ ይገልጻል። ለምሳሌ፣ 16x16 ማትሪክስ በ2x2 ሰቆች (ከታች በምስሉ ላይ እንደሚታየው) ተከፍሎ ወደ ትይዩ_ለእያንዳንዱ ተግባር ሊተላለፍ ይችላል።

መጠን<2>ማትሪክስ (16,16); የታሸገ_መጠን<2,2>tiledMatrix = matrix.tile<2,2>(); parallel_for_Eያንዳንዱ(tiledMatrix፣ [=](tiiled_index<2,2>idx) መገደብ (amp) (// ...));

እያንዳንዳቸው የአንድ ዓይነት ሞዛይክ ንብረት የሆኑ አራት የአፈፃፀም ክሮች በብሎክ ውስጥ የተከማቸውን መረጃ ማጋራት ይችላሉ።

ከመደበኛ ኢንዴክስ ይልቅ በጂፒዩ ኮር ውስጥ በማትሪክስ ስራዎችን ሲያከናውን<2>, ከላይ በተገለጹት ምሳሌዎች, መጠቀም ይችላሉ idx.global. የአካባቢያዊ የታሸገ ማህደረ ትውስታን እና የአካባቢ ኢንዴክሶችን በትክክል መጠቀም ከፍተኛ የአፈፃፀም እመርታዎችን ሊሰጥ ይችላል። በአንድ ንጣፍ ውስጥ በሁሉም የአፈፃፀም ክሮች የተጋራ የታሸገ ማህደረ ትውስታን ለማወጅ የአካባቢ ተለዋዋጮች በሰድር_ስታቲክ ገላጭ መታወጅ ይችላሉ።

በተግባር ፣ የጋራ ማህደረ ትውስታን የማወጅ እና የነጠላ ብሎኮችን በተለያዩ የአፈፃፀም ክሮች ውስጥ የማስጀመር ዘዴ ብዙውን ጊዜ ጥቅም ላይ ይውላል።

ትይዩ_ለእያንዳንዱ(tiledMatrix፣ [=](tiiled_index<2,2>idx) መገደብ (amp) (// 32 ባይት በሁሉም ክሮች የተጋራው በብሎክ tile_static int local ውስጥ ነው፤ // ለዚህ የአፈፃፀም ክር ለኤለመንት እሴት ይመድቡ local = 42; ));

በግልጽ ለማየት እንደሚቻለው, የጋራ ማህደረ ትውስታን ከመጠቀም ማንኛውም ጥቅም ሊገኝ የሚችለው የዚህ ማህደረ ትውስታ መዳረሻ ከተመሳሰለ ብቻ ነው. ማለትም፣ ክሮች በአንደኛው እስኪጀመር ድረስ ማህደረ ትውስታን መድረስ የለባቸውም። በሞዛይክ ውስጥ ያሉትን ክሮች ማመሳሰል የሚከናወነው እቃዎችን በመጠቀም ነው የሰድር_ማገጃ(ከTPL ቤተ-መጽሐፍት የባሪየር ክፍልን የሚያስታውስ) - የ tile_barrier.Wait () ዘዴን ከጠሩ በኋላ መፈጸሙን መቀጠል ይችላሉ ፣ ይህም ሁሉም ክሮች tile_barrier ብለው ሲጠሩ ብቻ ነው ። ይጠብቁ። ለምሳሌ፡-

ትይዩ_ለእያንዳንድ(tiledMatrix፣ (tiled_index<2,2>idx) restrict(amp) (// 32 ባይት በብሎክ tile_static int local ውስጥ ባሉ ሁሉም ክሮች ይጋራሉ፤ // ለዚህ የአፈፃፀም ክር ለኤለመንት እሴት ይመድቡ local = 42፤ // idx.barrier የ tile_barrier ምሳሌ ነው። idx.barrier.wait () ();

የተማርከውን ወደ ተጨባጭ ምሳሌ ለመተርጎም ጊዜው አሁን ነው። ወደ ማትሪክስ ማባዛት አተገባበር እንመለስ ፣ ያለ ንጣፍ ማህደረ ትውስታ ድርጅት ጥቅም ላይ የዋለ እና የተገለጸውን ማመቻቸት በእሱ ላይ እንጨምር። የማትሪክስ መጠኑ የ 256 ብዜት ነው ብለን እናስብ - ይህ ከ 16 x 16 ብሎኮች ጋር እንድንሰራ ያስችለናል የማትሪክስ ተፈጥሮ ማገጃ ማባዛት, እና ይህንን ባህሪይ መጠቀም እንችላለን (በእርግጥ, መከፋፈል). ማትሪክስ ወደ ብሎኮች የበለጠ ቀልጣፋ የሲፒዩ መሸጎጫ አጠቃቀምን በማቅረብ የማትሪክስ ብዜት ስልተ ቀመር ማመቻቸት ነው።

የዚህ ዘዴ ይዘት ወደሚከተለው ይወርዳል. በውጤት ማትሪክስ ውስጥ C i,j (በ ረድፍ i እና አምድ j ውስጥ ያለው ንጥረ ነገር በውጤት ማትሪክስ) ለማግኘት በ A i,* (የመጀመሪያው ማትሪክስ i-ኛ ረድፍ) እና B *,j (j) መካከል ያለውን የነጥብ ምርት ማስላት ያስፈልግዎታል -ኛ አምድ በሁለተኛው ማትሪክስ). ሆኖም ይህ የረድፉ እና የአምዱ ከፊል ነጥብ ምርቶችን በማስላት ውጤቱን ከማጠቃለል ጋር እኩል ነው። የማትሪክስ ብዜት አልጎሪዝምን ወደ ንጣፍ ስሪት ለመቀየር ይህንን እውነታ ልንጠቀምበት እንችላለን፡-

ባዶ ማትሪክስ ማባዛት (int* A፣ int m፣ int w፣ int* B፣ int n፣ int* C) ( ድርድር_ዕይታ avA(m፣ w፣ A); የድርድር_እይታ avC (m, n, C);<16,16>avC.discard_data ();<16,16>ትይዩ_ለእያንዳንዱ(avC.extent.tile

()፣ [=](tiiled_index

idx) ገደብ (amp) (int sum = 0; int localRow = idx.local, localCol = idx.local; ለ (int k = 0; k)

የተገለፀው ማመቻቸት ይዘት በሙሴ ውስጥ ያለው እያንዳንዱ ክር (256 ክሮች ለ 16 x 16 ብሎክ የተፈጠሩ ናቸው) ኤለመንቱን በ 16 x 16 የአካባቢያዊ ቅጂዎች የመጀመሪያዎቹ ማትሪክስ A እና B ውስጥ ያስጀምራል ። በሞዛይክ ውስጥ ያለው እያንዳንዱ ክር ያስፈልገዋል የእነዚህ ብሎኮች አንድ ረድፍ እና አንድ አምድ ብቻ ነው ፣ ግን ሁሉም ክሮች አንድ ላይ እያንዳንዱን ረድፍ እና እያንዳንዱን አምድ 16 ጊዜ ይደርሳሉ። ይህ አቀራረብ ወደ ዋናው ማህደረ ትውስታ የመዳረሻ ብዛት በእጅጉ ይቀንሳል.

ስለ C++ AMP ማዕቀፍ ውይይታችንን ከማብቃታችን በፊት፣ ለገንቢዎች የሚገኙትን መሳሪያዎች (በቪዥዋል ስቱዲዮ) መጥቀስ እንፈልጋለን። ቪዥዋል ስቱዲዮ 2012 የግራፊክስ ማቀናበሪያ አሃድ (ጂፒዩ) አራሚ ያቀርባል ይህም የመለያያ ነጥቦችን እንዲያዘጋጁ፣ የጥሪ ቁልል እንዲመረምሩ እና የአካባቢ ተለዋዋጭ እሴቶችን እንዲያነቡ እና እንዲቀይሩ (አንዳንድ አፋጣኞች የጂፒዩ ማረም በቀጥታ ይደግፋሉ፣ ለሌሎች ቪዥዋል ስቱዲዮ የሶፍትዌር አስመሳይን ይጠቀማል) , እና አንድ መተግበሪያ ጂፒዩ በመጠቀም ትይዩ ስራዎችን የሚያገኛቸውን ጥቅሞች ለመገምገም የሚያስችል ፕሮፋይለር። በ Visual Studio ውስጥ ስለ ማረም ችሎታዎች የበለጠ መረጃ ለማግኘት የ Walkthrough ጽሑፍን ይመልከቱ። በMSDN ላይ የC++ AMP መተግበሪያን ማረም።

በ NET ውስጥ የጂፒዩ ማስላት አማራጮች

እስካሁን ድረስ ይህ ጽሑፍ በC++ ውስጥ ምሳሌዎችን ብቻ አሳይቷል፣ ሆኖም ግን፣ በሚተዳደሩ መተግበሪያዎች ውስጥ የጂፒዩውን ኃይል ለመጠቀም ብዙ መንገዶች አሉ። አንደኛው መንገድ ስራን ከጂፒዩ ኮሮች ጋር ወደ ዝቅተኛ ደረጃ C++ ክፍሎች ለማውረድ የሚያስችሉዎትን የኢንተርሮፕ መሳሪያዎችን መጠቀም ነው። ይህ መፍትሔ የC++ AMP ማዕቀፍን ለመጠቀም ለሚፈልጉ ወይም ቀድሞ የተሰሩ የC++ AMP ክፍሎችን በሚተዳደሩ መተግበሪያዎች ውስጥ ለመጠቀም ለሚፈልጉ በጣም ጥሩ ነው።

ሌላው መንገድ ከሚተዳደረው ኮድ ከጂፒዩ ጋር በቀጥታ የሚሰራ ቤተ-መጽሐፍትን መጠቀም ነው። በአሁኑ ጊዜ ብዙ እንደዚህ ያሉ ቤተ-መጻሕፍት አሉ። ለምሳሌ፣ GPU.NET እና CUDAfy.NET (ሁለቱም የንግድ አቅርቦቶች)። የሁለት ቬክተር የነጥብ ምርት መተግበሩን የሚያሳይ ከጂፒዩ.NET GitHub ማከማቻ ምሳሌ ከዚህ በታች አለ።

የህዝብ የማይንቀሳቀስ ባዶ ማባዛትAddGpu (ድርብ a፣ ድርብ ለ፣ ድርብ ሐ) ( int ThreadId = BlockDimension.X * BlockIndex.X + ThreadIndex.X፤ int TotalThreads = BlockDimension.X * GridDimension.X፤ ለ (int ElementIdx = ThreadId፤ ElementIdx

በቤተ መፃህፍት ደረጃ ግንኙነቶችን ለማቀናጀት ከመሞከር ወይም በIL ቋንቋ ላይ ጉልህ ለውጦችን ከማድረግ ይልቅ የቋንቋ ቅጥያ መማር (በC++ AMP ላይ የተመሰረተ) መማር በጣም ቀላል እና ቀልጣፋ ነው ባይ ነኝ።

ስለዚህ፣ ትይዩ ፕሮግራሞችን በ NET ውስጥ እና ጂፒዩውን ከተጠቀምን በኋላ፣ ትይዩ ኮምፒውቲንግን ማደራጀት ምርታማነትን ለመጨመር ጠቃሚ መንገድ መሆኑን ማንም አይጠራጠርም። በአለም ዙሪያ ባሉ ብዙ አገልጋዮች እና የስራ ጣቢያዎች በዋጋ የማይተመን የሲፒዩ እና ጂፒዩዎች የማቀናበር ሃይል ጥቅም ላይ ያልዋለ ነው ምክንያቱም አፕሊኬሽኖች በቀላሉ ስለማይጠቀሙት ነው።

የተግባር ትይዩ ቤተ መፃህፍት ሁሉንም የሚገኙትን ሲፒዩ ኮሮች ለማካተት ልዩ እድል ይሰጠናል፣ ምንም እንኳን ይህ አንዳንድ አስደሳች የማመሳሰል ችግሮችን መፍታትን የሚጠይቅ ቢሆንም ከመጠን ያለፈ የስራ ክፍፍል እና በአፈፃፀም ክሮች መካከል እኩል ያልሆነ የስራ ስርጭት።

የC++ AMP ማዕቀፍ እና ሌሎች ባለብዙ-ዓላማ ጂፒዩ ትይዩ ኮምፒውቲንግ ቤተ-መጻሕፍት በተሳካ ሁኔታ በመቶዎች በሚቆጠሩ የጂፒዩ ማዕከሎች ውስጥ ያሉ ስሌቶችን ለማመሳሰል ጥቅም ላይ ሊውሉ ይችላሉ። በመጨረሻም፣ በቅርብ ጊዜ በኢንፎርሜሽን ቴክኖሎጂ ልማት ውስጥ ዋና አቅጣጫዎች ከሆኑት ከዳመና የተከፋፈሉ የኮምፒዩቲንግ ቴክኖሎጂዎች በመጠቀም የምርታማነት ትርፍ ለማግኘት ቀደም ሲል ያልታወቀ ዕድል አለ።

ጂፒዩ ማስላት

CUDA ቴክኖሎጂ (የተዋሃደ የመሣሪያ አርክቴክቸር) የጂፒጂፒዩ ቴክኖሎጂን (በቪዲዮ ካርዶች ላይ በዘፈቀደ ማስላት) የሚደግፉ የNVDIA ግራፊክስ ፕሮሰሰርን በመጠቀም ማስላት የሚያስችል የሃርድዌር እና የሶፍትዌር አርክቴክቸር ነው። የ CUDA አርክቴክቸር መጀመሪያ ስምንተኛው ትውልድ NVIDIA ቺፕ - G80 መለቀቅ ጋር ገበያ ላይ ታየ እና GeForce, ION, Quadro እና Tesla accelerator ቤተሰቦች ውስጥ ጥቅም ላይ ሁሉም ተከታይ ግራፊክስ ቺፖችን ውስጥ ይገኛል.

CUDA ኤስዲኬ ፕሮግራመሮች በNVadi ጂፒዩዎች ላይ የሚተገበሩ ስልተ ቀመሮችን በልዩ ቀለል ባለ የC ፕሮግራሚንግ ቋንቋ ቀበሌኛ እንዲተገብሩ እና ልዩ ተግባራትን በC ፕሮግራም ጽሑፍ ውስጥ እንዲያካትቱ ያስችላቸዋል። CUDA ለገንቢው በራሱ ፈቃድ የግራፊክስ አፋጣኝ መመሪያ ስብስብ መዳረሻን እንዲያደራጅ እና ማህደረ ትውስታውን እንዲያስተዳድር እና ውስብስብ ትይዩ ስሌቶችን በእሱ ላይ እንዲያደራጅ እድል ይሰጣል።

ታሪክ

እ.ኤ.አ. በ 2003 ኢንቴል እና ኤኤምዲ በጣም ኃይለኛ ፕሮሰሰር ለማግኘት በጋራ ውድድር ውስጥ ነበሩ ። ከበርካታ አመታት በኋላ በዚህ ውድድር ምክንያት የሰዓት ፍጥነት በከፍተኛ ሁኔታ ጨምሯል, በተለይም ኢንቴል ፔንቲየም 4 ከተለቀቀ በኋላ.

የሰዓት ድግግሞሽ (እ.ኤ.አ. በ 2001 እና 2003 መካከል ፣ የፔንቲየም 4 ሰዓት ድግግሞሽ ከ 1.5 ወደ 3 GHz በእጥፍ ጨምሯል) እና ተጠቃሚዎች በአምራቾች ወደ ገበያ በመጡ አሥረኛው ጊኸርትዝ መርካት ነበረባቸው (ከ2003 እስከ 2005)። የሰዓት ድግግሞሾች ከ3 እስከ 3.8 ጊኸ ጨምረዋል።

እንደ ፕሬስኮት ላሉ ከፍተኛ የሰዓት ድግግሞሾች የተመቻቹ አርክቴክቶችም ችግሮች ያጋጥሟቸው ጀመር፣ እና የምርት ብቻም አይደሉም። ቺፕ ሰሪዎች የፊዚክስ ህጎችን በማሸነፍ ፈተናዎች ይገጥሟቸዋል። አንዳንድ ተንታኞች የሙር ህግ መተግበሩን እንደሚያቆም ተንብየዋል። ግን ይህ አልሆነም። የሕጉ የመጀመሪያ ትርጉም ብዙውን ጊዜ የተዛባ ነው, ነገር ግን በሲሊኮን ኮር ወለል ላይ ያሉትን ትራንዚስተሮች ብዛት ይመለከታል. ለረጅም ጊዜ በሲፒዩ ውስጥ ያሉ ትራንዚስተሮች ቁጥር መጨመር በተመጣጣኝ የአፈፃፀም ጭማሪ አብሮ ነበር - ይህም ትርጉሙን እንዲዛባ አድርጓል። ግን ከዚያ በኋላ ሁኔታው ​​​​የተወሳሰበ ሆነ. የሲፒዩ አርክቴክቸር ገንቢዎች የዕድገት ቅነሳ ህግን ቀርበዋል፡ ለሚፈለገው የአፈጻጸም መጨመር መጨመር የሚያስፈልጋቸው ትራንዚስተሮች ቁጥር እየጨመረ በመምጣቱ ወደ ሙት መጨረሻ አመራ።

የጂፒዩ አምራቾች ይህን ችግር ያላጋጠማቸውበት ምክንያት በጣም ቀላል ነው፡ ሲፒዩዎች የተነደፉት የተለያዩ መረጃዎችን (ሁለቱንም ኢንቲጀር እና ተንሳፋፊ ነጥብ ቁጥሮችን) በሚያስኬዱ የመመሪያ ዥረት ላይ ከፍተኛ አፈፃፀም ለማግኘት ነው፣ የዘፈቀደ ማህደረ ትውስታ መዳረሻን ወዘተ. መ. እስካሁን ድረስ ገንቢዎች የበለጠ የመመሪያዎችን ትይዩ ለማቅረብ እየሞከሩ ነው - ማለትም በተቻለ መጠን ብዙ መመሪያዎችን በትይዩ ያስፈጽሙ። ለምሳሌ, ከ Pentium ጋር, ሱፐርካላር አፈፃፀም ታየ, በተወሰኑ ሁኔታዎች ውስጥ በሰዓት ዑደት ሁለት መመሪያዎችን ማከናወን ሲቻል. Pentium Pro ከትዕዛዝ ውጪ የተፈጸሙ መመሪያዎችን ተቀብሏል, ይህም የኮምፒተር ክፍሎችን አሠራር ለማመቻቸት አስችሏል. ችግሩ በቅደም ተከተል መመሪያዎችን በትይዩ ለማስፈጸም ግልጽ የሆኑ ውስንነቶች ስላለ በጭፍን የስሌት ክፍሎችን ቁጥር መጨመር አሁንም ብዙ ጊዜ ስራ ፈት ስለሚሆን ምንም አይነት ጥቅም አይሰጥም።

የጂፒዩ አሠራር በአንጻራዊነት ቀላል ነው. በአንድ በኩል የ polygons ቡድን መውሰድ እና በሌላኛው የፒክሰሎች ቡድን ማመንጨትን ያካትታል። ፖሊጎኖች እና ፒክስሎች እርስ በእርሳቸው ነጻ ናቸው, ስለዚህ በትይዩ ሊሰሩ ይችላሉ. ስለዚህ, በጂፒዩ ውስጥ ትልቅ የክሪስታል ክፍልን ወደ ስሌት አሃዶች መመደብ ይቻላል, እንደ ሲፒዩ በተለየ መልኩ በትክክል ጥቅም ላይ ይውላል.

ጂፒዩ ከሲፒዩ የሚለየው በዚህ መንገድ ብቻ አይደለም። በጂፒዩ ውስጥ ያለው የማህደረ ትውስታ መዳረሻ በጣም የተጣመረ ነው - ቴክሴል ከተነበበ ከጥቂት የሰዓት ዑደቶች በኋላ የጎረቤት ቴክሴል ይነበባል; አንድ ፒክሰል ሲቀዳ፣ ጎረቤቱ ከጥቂት የሰዓት ዑደቶች በኋላ ይመዘገባል። የማስታወስ ችሎታን በብልህነት በማደራጀት ከቲዎሬቲክ ግብአት ጋር ቅርበት ያለው አፈጻጸም ማሳካት ይችላሉ። ይህ ማለት ጂፒዩ ከሲፒዩ በተለየ መልኩ ትልቅ መሸጎጫ አይፈልግም ምክንያቱም ሚናው የፅሁፍ ስራዎችን ማፋጠን ነው። የሚፈለገው በቢሊነር እና ትሪሊነር ማጣሪያዎች ውስጥ ጥቅም ላይ የሚውሉ ጥቂት ቴክሴሎችን የያዘ ጥቂት ኪሎባይት ብቻ ነው።

በጂፒዩ ላይ የመጀመሪያ ስሌቶች

እንደዚህ ባሉ መተግበሪያዎች ላይ የመጀመሪያዎቹ ሙከራዎች እንደ ራስተርራይዜሽን እና ዜድ ማቋት ያሉ የተወሰኑ የሃርድዌር ተግባራትን በመጠቀም ብቻ የተገደቡ ናቸው። ነገር ግን አሁን ባለው ምዕተ-አመት, የሼዶች መምጣት, የማትሪክስ ስሌቶች መፋጠን ጀመሩ. እ.ኤ.አ. በ 2003 ፣ በ SIGGRAPH ፣ ለጂፒዩ ማስላት የተለየ ክፍል ተመድቧል ፣ እና GPGPU (አጠቃላይ ዓላማ በጂፒዩ ላይ) ተብሎ ይጠራ ነበር።

በጣም የሚታወቀው ብሩክጂፒዩ ነው፣ የብሩክ ዥረት ፕሮግራሚንግ ቋንቋ አጠናቃሪ፣ በጂፒዩ ላይ ስዕላዊ ያልሆኑ ስሌቶችን ለመስራት የተነደፈ። ከመታየቱ በፊት፣ የቪዲዮ ቺፖችን አቅም ለማስላት የሚጠቀሙ ገንቢዎች ከሁለት የተለመዱ ኤፒአይዎች አንዱን መርጠዋል፡ Direct3D ወይም OpenGL። ይህ የጂፒዩዎችን አጠቃቀም በእጅጉ ይገድባል፣ ምክንያቱም 3-ል ግራፊክስ ትይዩ የፕሮግራም ስፔሻሊስቶች ክሮች እና ኮርሞችን ስለሚጠቀሙ ሼዶች እና ሸካራማነቶችን ይጠቀማሉ። ብሩክ ተግባራቸውን ቀላል ለማድረግ መርዳት ችሏል. በስታንፎርድ ዩኒቨርሲቲ የተገነቡት እነዚህ የC ቋንቋ የዥረት ማራዘሚያዎች፣ 3D API ን ከፕሮግራም አውጪዎች ደብቀው፣ እና የቪዲዮ ቺፑን እንደ ትይዩ ኮፕሮሰሰር አቅርበዋል። አቀናባሪው የ.br ፋይልን በC++ ኮድ እና ቅጥያዎችን በማዘጋጀት ከDirectX፣ OpenGL ወይም x86-የነቃ ቤተ-መጽሐፍት ጋር የተገናኘ ኮድ አወጣ።

የብሩክ ገጽታ በNVDIA እና ATI መካከል ፍላጎትን ቀስቅሷል እና ከዚያ በኋላ ሙሉ ለሙሉ አዲስ ዘርፍ ከፍቷል - በቪዲዮ ቺፕስ ላይ የተመሰረቱ ትይዩ ኮምፒተሮች።

በመቀጠል፣ አንዳንድ የብሩክ ፕሮጄክት ተመራማሪዎች የሃርድዌር-ሶፍትዌር ትይዩ የኮምፒዩቲንግ ስትራቴጂን ለማስተዋወቅ ወደ ኒቪዲ ልማት ቡድን ተንቀሳቅሰዋል፣ ይህም አዲስ የገበያ ድርሻን ከፍቷል። እና የዚህ የNVDIA ተነሳሽነት ዋና ጠቀሜታ ገንቢዎች እስከ መጨረሻው ዝርዝር ድረስ ሁሉንም የጂፒዩዎቻቸውን ችሎታዎች ስለሚያውቁ የግራፊክስ ኤፒአይ መጠቀም አያስፈልግም እና ሾፌሩን በቀጥታ በመጠቀም ከሃርድዌር ጋር መስራት ይችላሉ። የዚህ ቡድን ጥረት ውጤት NVIDIA CUDA ነበር።

በጂፒዩ ላይ ትይዩ ስሌቶችን የመተግበር ቦታዎች

ስሌቶችን ወደ ጂፒዩ ሲያስተላልፍ ብዙ ስራዎች ፈጣን ሁለንተናዊ ፕሮሰሰር ጋር ሲወዳደሩ ከ5-30 ጊዜ ማፋጠን ይችላሉ። ትላልቆቹ ቁጥሮች (በ100x ፍጥነት ወይም ከዚያ በላይ!) የ SSE ብሎኮችን በመጠቀም ለማስላት በጣም ተስማሚ ባልሆነ ኮድ የተገኙ ናቸው ፣ ግን ለጂፒዩዎች በጣም ምቹ ናቸው።

እነዚህ በጂፒዩ እና በኤስኤስኢ-ቬክተራይዝድ ኮድ በሲፒዩ (በNVDIA መሠረት) የፍጥነት መጠናቸው አንዳንድ ምሳሌዎች ናቸው።

የፍሎረሰንት ማይክሮስኮፒ፡ 12x.

ሞለኪውላዊ ተለዋዋጭ (የማይያያዝ ኃይል ካልሲ): 8-16x;

ኤሌክትሮስታቲክስ (ቀጥታ እና ባለብዙ ደረጃ Coulomb ማጠቃለያ): 40-120x እና 7x.

NVIDIA በሁሉም የዝግጅት አቀራረቦች ላይ የሚያሳየው ሰንጠረዥ ከሲፒዩዎች አንጻር የጂፒዩዎችን ፍጥነት ያሳያል።

የጂፒዩ ኮምፒዩቲንግ ጥቅም ላይ የሚውልባቸው ዋና ዋና አፕሊኬሽኖች ዝርዝር፡ የምስሎች እና ምልክቶች ትንተና እና ሂደት፣ ፊዚክስ ማስመሰል፣ የሂሳብ ስሌት፣ የስሌት ባዮሎጂ፣ የፋይናንሺያል ስሌቶች፣ የውሂብ ጎታዎች፣ የጋዞች እና ፈሳሾች ተለዋዋጭነት፣ ክሪፕቶግራፊ፣ መላመድ የጨረር ህክምና፣ አስትሮኖሚ፣ የድምጽ ሂደት , ባዮኢንፎርማቲክስ , ባዮሎጂካል ማስመሰያዎች, የኮምፒዩተር እይታ, የውሂብ ማዕድን, ዲጂታል ሲኒማ እና ቴሌቪዥን, ኤሌክትሮማግኔቲክ ማስመሰያዎች, የጂኦግራፊያዊ መረጃ ስርዓቶች, ወታደራዊ አፕሊኬሽኖች, የእኔ እቅድ ማውጣት, ሞለኪውላር ተለዋዋጭነት, ማግኔቲክ ድምጽ ማጉያ ምስል (ኤምአርአይ), የነርቭ ኔትወርኮች, የውቅያኖስ ምርምር, ቅንጣት ፊዚክስ, ፕሮቲን የታጠፈ ማስመሰል፣ ኳንተም ኬሚስትሪ፣ የጨረር ፍለጋ፣ ምስላዊነት፣ ራዳር፣ የውሃ ማጠራቀሚያ ማስመሰል፣ አርቴፊሻል ኢንተለጀንስ፣ የሳተላይት መረጃ ትንተና፣ የሴይስሚክ ፍለጋ፣ ቀዶ ጥገና፣ አልትራሳውንድ፣ የቪዲዮ ኮንፈረንስ።

የ CUDA ጥቅሞች እና ገደቦች

ከፕሮግራመር አተያይ፣ የግራፊክስ ቧንቧ የማቀነባበሪያ ደረጃዎች ስብስብ ነው። የጂኦሜትሪ እገዳው ትሪያንግሎችን ያመነጫል, እና ራስተርራይዜሽን በማያ ገጹ ላይ የሚታዩትን ፒክስሎች ያመነጫል. ባህላዊው የጂፒጂፒዩ ፕሮግራሚንግ ሞዴል ይህን ይመስላል።

በዚህ ሞዴል ውስጥ ስሌቶችን ወደ ጂፒዩ ለማስተላለፍ ልዩ አቀራረብ ያስፈልጋል. በኤለመንታዊ ጥበባዊ የሁለት ቬክተሮች መጨመር እንኳን ምስሉን በስክሪኑ ላይ ወይም ከስክሪን ውጪ ወደሆነ ቋት መሳል ያስፈልገዋል። ስዕሉ በራስ ተሰርቷል ፣ የእያንዳንዱ ፒክሰል ቀለም በተሰጠው ፕሮግራም (ፒክስል ጥላ) በመጠቀም ይሰላል። መርሃግብሩ ለእያንዳንዱ ፒክሴል የግብአት ውሂቡን ከሸካራዎች ያነባል, ይጨምረዋል እና ወደ የውጤት ቋት ይጽፋል. እና እነዚህ ሁሉ ኦፕሬሽኖች በመደበኛ የፕሮግራም አወጣጥ ቋንቋ በአንድ ኦፕሬተር ውስጥ ለተጻፈ ነገር ያስፈልጋሉ!

ስለዚህ ጂፒጂፒዩን ለአጠቃላይ ዓላማ ማስላት መጠቀም ገንቢዎችን ለማሰልጠን በጣም አስቸጋሪ የመሆን ገደብ አለው። እና ሌሎች በቂ ገደቦች አሉ ፣ ምክንያቱም የፒክሰል ሼድ የፒክሰል የመጨረሻ ቀለም በአስተባባሪው ላይ ጥገኛ የሚሆንበት ቀመር ብቻ ነው ፣ እና የፒክሰል ሼዶች ቋንቋ እነዚህን ቀመሮች በ C-like አገባብ ለመፃፍ ቋንቋ ነው። ቀደምት የጂፒጂፒዩ ዘዴዎች የጂፒዩውን ኃይል እንዲጠቀሙ የሚያስችልዎ ንፁህ ብልሃት ናቸው፣ ነገር ግን ያለምንም ምቾት። እዚያ ያለው መረጃ በምስሎች (ሸካራዎች) ይወከላል, እና አልጎሪዝም የሚወከለው በራስተርራይዜሽን ሂደት ነው. ልዩ ማስታወሻ የማስታወስ እና የማስፈጸም ሞዴል ነው.

የሶፍትዌር እና ሃርድዌር አርክቴክቸር ለጂፒዩ ኮምፒውቲንግ ከ NVIDIA ከቀደሙት የጂፒጂፒዩ ሞዴሎች የሚለየው ለጂፒዩ ፕሮግራሞችን በእውነተኛ ሲ ቋንቋ ከመደበኛ አገባብ፣ ጠቋሚዎች እና የቪዲዮ ማስላት ግብአቶችን ለመድረስ በትንሹ የማራዘሚያ አስፈላጊነት እንዲጽፉ ስለሚያደርግ ነው። ቺፕስ. CUDA ከግራፊክስ ኤ.ፒ.አይ.ዎች ነጻ ነው፣ እና ለአጠቃላይ አላማ ኮምፒዩቲንግ የተነደፉ አንዳንድ ባህሪያት አሉት።

የCUDA ጥቅሞች ለጂፒጂፒዩ ኮምፒዩቲንግ ባህላዊ አቀራረብ

CUDA በአንድ ባለብዙ ፕሮሰሰር 16 ኪባ በክር የተጋራ ማህደረ ትውስታን ይሰጣል፣ ይህም ከሸካራነት ፈልሳፊዎች ከፍ ያለ የመተላለፊያ ይዘት ያለው መሸጎጫ ለማደራጀት ሊያገለግል ይችላል።

በስርዓት እና በቪዲዮ ማህደረ ትውስታ መካከል የበለጠ ቀልጣፋ የውሂብ ማስተላለፍ;

የግራፊክስ ኤፒአይዎች ከድግግሞሽ እና ከመጠን በላይ ክፍያ አያስፈልግም;

የመስመራዊ ማህደረ ትውስታ አድራሻ, መሰብሰብ እና መበታተን, የዘፈቀደ አድራሻዎችን የመጻፍ ችሎታ;

ለኢንቲጀር እና ቢት ኦፕሬሽኖች የሃርድዌር ድጋፍ።

የCUDA ዋና ገደቦች፡-

ሊተገበሩ ለሚችሉ ተግባራት የድጋሚ ድጋፍ እጥረት;

ዝቅተኛው የማገጃ ስፋት 32 ክሮች ነው;

በNVDIA ባለቤትነት የተያዘ ዝግ የCUDA አርክቴክቸር።

ከቀደምት የጂፒጂፒዩ ስልቶች ጋር የፕሮግራም አወጣጥ ድክመቶች እነዚህ ዘዴዎች በቀደሙት የተዋሃዱ ባልሆኑ አርክቴክቸር ውስጥ የvertex shader execution አሃዶችን አለመጠቀማቸው፣ መረጃ በሸካራነት ውስጥ ተከማችቶ ከስክሪን ውጪ ወደሚገኝ ቋት ስለሚወጣ እና ባለብዙ ማለፊያ ስልተ ቀመሮች የፒክሰል ሼደር ክፍሎችን መጠቀማቸው ነው። የጂፒጂፒዩ ውሱንነቶች የሚከተሉትን ሊያካትቱ ይችላሉ፡ የሃርድዌር አቅምን በቂ አለመጠቀም፣ የማህደረ ትውስታ ባንድዊድዝ ገደቦች፣ የተበታተነ አሰራር አለመኖር (መሰብሰብ ብቻ)፣ የግራፊክስ ኤፒአይ የግዴታ አጠቃቀም።

የCUDA ዋና ጥቅሞች ከቀደምት የጂፒጂፒዩ ዘዴዎች የመነጨው አርክቴክቸር በጂፒዩ ላይ ግራፊክስ ያልሆኑ ኮምፒውተሮችን በብቃት ለመጠቀም የተነደፈ በመሆኑ እና የC ፕሮግራሚንግ ቋንቋን በመጠቀም ስልተ ቀመሮችን ወደ ግራፊክስ ቧንቧ መስመር ፅንሰ-ሀሳብ ተስማሚ ቅፅ ሳያስፈልገው ነው። . CUDA የግራፊክስ ኤፒአይዎችን የማይጠቀም የጂፒዩ ማስላት አዲስ መንገድ ያቀርባል፣ ይህም የዘፈቀደ የማህደረ ትውስታ መዳረሻ (መበታተን ወይም መሰብሰብ) ያቀርባል። ይህ አርክቴክቸር የጂፒጂፒዩ ጉዳቶች የሉትም እና ሁሉንም የማስፈጸሚያ ክፍሎችን ይጠቀማል እንዲሁም በኢንቲጀር ሂሳብ እና በቢት ፈረቃ ስራዎች ምክንያት አቅሞችን ያሰፋል።

CUDA ከግራፊክስ ኤፒአይዎች እንደ የጋራ ማህደረ ትውስታ ያሉ አንዳንድ የሃርድዌር ችሎታዎችን ይከፍታል። ይህ ትንሽ ማህደረ ትውስታ ነው (16 ኪሎባይት በአንድ ባለብዙ ፕሮሰሰር) ክር ብሎኮች የሚደርሱበት። በጣም በተደጋጋሚ የተገኘ መረጃን መሸጎጫ እንዲያደርጉ ይፈቅድልዎታል እና ለዚህ ተግባር ሸካራነት ፈልጎዎችን ከመጠቀም የበለጠ ፈጣን ፍጥነትን ይሰጣል። የትኛው፣ በተራው፣ በብዙ አፕሊኬሽኖች ውስጥ የትይዩ ስልተ ቀመሮችን የመተላለፊያ ስሜትን ይቀንሳል። ለምሳሌ ለመስመራዊ አልጀብራ፣ ፈጣን ፎሪየር ትራንስፎርሜሽን እና የምስል ማቀነባበሪያ ማጣሪያዎች ጠቃሚ ነው።

የማህደረ ትውስታ መዳረሻ በCUDA ውስጥም የበለጠ ምቹ ነው። የግራፊክስ ኤፒአይ ኮድ እንደ 32 ነጠላ ትክክለኛነት ተንሳፋፊ-ነጥብ እሴቶች (RGBA እሴቶች በአንድ ጊዜ ወደ ስምንት ዒላማዎች) ወደ ቅድመ-የተገለጹ አካባቢዎች ያወጣል ፣ እና CUDA በማንኛውም አድራሻ ያልተገደበ የመዝገቦች ብዛት ይደግፋል። እንደነዚህ ያሉት ጥቅሞች በግራፊክ ኤፒአይዎች ላይ በመመስረት የጂፒጂፒዩ ዘዴዎችን በመጠቀም በብቃት ሊተገበሩ የማይችሉ አንዳንድ ስልተ ቀመሮችን በጂፒዩ ላይ ለማስኬድ ያስችላሉ።

እንዲሁም፣ የግራፊክስ ኤፒአይዎች የግድ መረጃን በሸካራነት ውስጥ ያከማቻሉ፣ ይህም ትላልቅ ድርድሮችን ወደ ሸካራነት ቀድመው ማሸግ ያስፈልገዋል፣ ይህም ስልተ ቀመሩን ያወሳስበዋል እና ልዩ አድራሻዎችን መጠቀም ያስገድዳል። እና CUDA በማንኛውም አድራሻ ውሂብ እንዲያነቡ ይፈቅድልዎታል። ሌላው የCUDA ጥቅም በሲፒዩ እና በጂፒዩ መካከል ያለው የተመቻቸ የመረጃ ልውውጥ ነው። እና ዝቅተኛ ደረጃ መዳረሻ ለሚፈልጉ ገንቢዎች (ለምሳሌ፣ ሌላ የፕሮግራሚንግ ቋንቋ ሲጽፉ) CUDA ዝቅተኛ ደረጃ የመሰብሰቢያ ቋንቋ ፕሮግራሚንግ ችሎታዎችን ይሰጣል።

የ CUDA ጉዳቶች

የCUDA ጥቂት ጉዳቶች አንዱ ደካማ ተንቀሳቃሽነት ነው። ይህ አርክቴክቸር የሚሠራው ከዚህ ኩባንያ በቪዲዮ ቺፖች ላይ ብቻ ነው፣ እና በሁሉም ላይ አይደለም፣ ነገር ግን ከ GeForce 8 እና 9 ተከታታይ እና ከተዛማጅ ኳድሮ፣ ION እና Tesla ጀምሮ። NVIDIA ከ 90 ሚሊዮን CUDA ጋር ተኳሃኝ የሆኑ የቪዲዮ ቺፖችን አሃዝ ጠቅሷል።

CUDA አማራጮች

በተለያዩ ግራፊክስ እና ማዕከላዊ ማቀነባበሪያዎች ላይ ከትይዩ ኮምፒዩተር ጋር የተዛመዱ የኮምፒተር ፕሮግራሞችን ለመፃፍ ማዕቀፍ። የOpenCL ማእቀፍ በC99 መስፈርት እና በመተግበሪያ ፕሮግራሚንግ በይነገጽ (ኤፒአይ) ላይ የተመሰረተ የፕሮግራም አወጣጥ ቋንቋን ያካትታል። OpenCL የማስተማሪያ-ደረጃ እና የውሂብ ደረጃ ትይዩነት ያቀርባል እና የጂፒጂፒዩ ቴክኒክ ትግበራ ነው። OpenCL ሙሉ በሙሉ ክፍት መስፈርት ነው እና ለመጠቀም ከሮያሊቲ ነፃ ነው።

የOpenCL ግቡ የጂፒዩውን ሃይል በመጠቀም ለ3D ኮምፒውተር ግራፊክስ እና ኦዲዮ ክፍት የኢንዱስትሪ መስፈርቶች የሆኑትን OpenGL እና OpenALን ማሟላት ነው። OpenCL የተገነባው እና የሚንከባከበው ለትርፍ ባልተቋቋመው ክሮኖስ ግሩፕ ሲሆን ይህም አፕል፣ AMD፣ Intel፣ nVidia፣ Sun Microsystems፣ Sony Computer Entertainment እና ሌሎችን ጨምሮ ብዙ ትላልቅ ኩባንያዎችን ያካትታል።

CAL/IL(የሂሳብ ማጠቃለያ ንብርብር/መካከለኛ ቋንቋ)

ATI Stream Technology ብዙ አፕሊኬሽኖችን (ግራፊክስ ብቻ ሳይሆን) ለማፋጠን AMD ጂፒዩዎች ከሲፒዩ ጋር በጥምረት ጥቅም ላይ እንዲውሉ የሚያስችል የሃርድዌር እና የሶፍትዌር ቴክኖሎጂዎች ስብስብ ነው።

የ ATI Stream ማመልከቻዎች እንደ የፋይናንሺያል ትንተና ወይም የሴይስሚክ ዳታ ማቀናበርን የመሳሰሉ በስሌት የተጠናከሩ መተግበሪያዎችን ያካትታሉ። የዥረት ፕሮሰሰር አጠቃቀም ማዕከላዊ ፕሮሰሰርን ብቻ በመጠቀም ተመሳሳይ ችግርን ከመፍታት ጋር ሲነፃፀር የአንዳንድ የፋይናንሺያል ስሌቶችን ፍጥነት በ55 ጊዜ ለመጨመር አስችሎታል።

NVIDIA የ ATI Stream ቴክኖሎጂን በጣም ጠንካራ ተፎካካሪ አድርጎ አይቆጥረውም። CUDA እና Stream በተለያየ የእድገት ደረጃ ላይ ያሉ ሁለት የተለያዩ ቴክኖሎጂዎች ናቸው። ለ ATI ምርቶች ፕሮግራም ማውጣት በጣም የተወሳሰበ ነው - ቋንቋቸው እንደ የመሰብሰቢያ ቋንቋ ነው። CUDA C፣ በተራው፣ የበለጠ ከፍተኛ ደረጃ ያለው ቋንቋ ነው። በላዩ ላይ መፃፍ የበለጠ ምቹ እና ቀላል ነው። ይህ ለትልቅ የልማት ኩባንያዎች በጣም አስፈላጊ ነው. ስለ አፈጻጸም ከተነጋገርን በ ATI ምርቶች ውስጥ ያለው ከፍተኛ ዋጋ ከNVDIA መፍትሄዎች የበለጠ መሆኑን ማየት እንችላለን። ግን እንደገና ይህንን ኃይል እንዴት ማግኘት እንደሚቻል ሁሉም ነገር ይመጣል።

DirectX11 (ቀጥታ ስሌት)

የDirectX አካል የሆነ የመተግበሪያ ፕሮግራሚንግ በይነገጽ፣የማይክሮሶፍት ዊንዶውስ ኦፐሬቲንግ ሲስተሞችን በሚያሄዱ IBM ፒሲ-ተኳሃኝ ኮምፒውተሮች ላይ እንዲሰራ የተቀየሰ የ APIs ስብስብ። DirectCompute በጂፒዩዎች ላይ አጠቃላይ ዓላማ ማስላትን ለማከናወን የተነደፈ ነው፣ የጂፒጂፒዩ ጽንሰ-ሀሳብ ትግበራ። DirectCompute መጀመሪያ ላይ እንደ DirectX 11 አካል ሆኖ ታትሟል፣ ነገር ግን በኋላ ለ DirectX 10 እና DirectX 10.1 ተዘጋጅቷል።

NVDIA CUDA በሩሲያ ሳይንሳዊ ማህበረሰብ ውስጥ.

ከዲሴምበር 2009 ጀምሮ፣ የCUDA ሶፍትዌር ሞዴል በአለም ዙሪያ በ269 ዩኒቨርሲቲዎች ውስጥ ተምሯል። በሩሲያ ውስጥ በ CUDA ላይ የስልጠና ኮርሶች በሞስኮ, በሴንት ፒተርስበርግ, ካዛን, ኖቮሲቢሪስክ እና ፔር ስቴት ዩኒቨርሲቲዎች, የማህበረሰብ ተፈጥሮ ዓለም አቀፍ ዩኒቨርሲቲ እና ሰው "ዱብና", የኑክሌር ምርምር የጋራ ተቋም, የሞስኮ የኤሌክትሮኒክስ ተቋም ቴክኖሎጂ, ኢቫኖቮ ግዛት ኢነርጂ ዩኒቨርሲቲ, BSTU. V.G. Shukhov፣ MSTU im. ባውማን ፣ የሩሲያ ኬሚካል ቴክኒካል ዩኒቨርሲቲ በስሙ ተሰይሟል። Mendeleev, የሩሲያ ሳይንሳዊ ማዕከል "Kurchatov ተቋም", የሩሲያ የሳይንስ አካዳሚ መካከል interregional ሱፐር ኮምፒውተር ማዕከል, Taganrog የቴክኖሎጂ ተቋም (TTI SFU).

በአንድ ወቅት ላፕቶፕ ከሚሸጡት በርካታ ኩባንያዎች ቴክኒካል ዳይሬክተር ጋር በኮምፒዩተር ገበያ የመነጋገር እድል አጋጥሞኝ ነበር። ይህ “ስፔሻሊስት” በአፍ ላይ አረፋ እየደፈነ፣ በትክክል ምን ላፕቶፕ ውቅረት እንደሚያስፈልገኝ ለማስረዳት ሞክሯል። የነጠላ ንግግሩ ዋና መልእክት የማዕከላዊ ማቀነባበሪያ ክፍሎች (ሲፒዩዎች) ጊዜ አብቅቷል ፣ እና አሁን ሁሉም መተግበሪያዎች በግራፊክ ፕሮሰሰር (ጂፒዩ) ላይ ስሌቶችን በንቃት ይጠቀማሉ ፣ እና ስለዚህ የጭን ኮምፒውተር አፈፃፀም ሙሉ በሙሉ በጂፒዩ ላይ የተመሠረተ ነው ፣ እና እርስዎ ለሲፒዩ ትኩረት ምንም ትኩረት መስጠት የለብዎትም. ከእኚህ ቴክኒካል ዳይሬክተር ጋር መጨቃጨቅ እና ለማመዛዘን መሞከር ፍፁም ትርጉም የለሽ መሆኑን ስለተረዳ ጊዜዬን አላጠፋሁም እና የምፈልገውን ላፕቶፕ በሌላ ፓቪል ገዛሁ። ሆኖም ግን፣ የሻጩ ግልጽ ብቃት ማነስ እውነታ በጣም አስገረመኝ። እንደ ገዥ ሊያታልለኝ እየሞከረ ከሆነ መረዳት የሚቻል ነበር። አይደለም። በተናገረው ነገር ከልቡ አምኗል። አዎን፣ በግልጽ ለማየት እንደሚቻለው፣ በNVDIA እና AMD ያሉ ገበያተኞች ዳቦቸውን የሚበሉት በሆነ ምክንያት ነው፣ እና በአንዳንድ ተጠቃሚዎች ውስጥ የግራፊክስ ፕሮሰሰር በዘመናዊው ኮምፒዩተር ውስጥ ያለውን ዋና ሚና ሀሳብ እንዲሰርጽ ማድረግ ችለዋል።

የግራፊክስ ፕሮሰሲንግ ዩኒት (ጂፒዩ) ኮምፒዩቲንግ ዛሬ ተወዳጅ እየሆነ መምጣቱ ከጥርጣሬ በላይ ነው። ሆኖም ፣ ይህ የማዕከላዊ ፕሮሰሰርን ሚና በጭራሽ አይቀንሰውም። በተጨማሪም ፣ ስለ አብዛኛዎቹ የተጠቃሚ መተግበሪያዎች ከተነጋገርን ፣ ዛሬ አፈፃፀማቸው ሙሉ በሙሉ በሲፒዩ አፈፃፀም ላይ የተመሠረተ ነው። ማለትም፣ አብዛኛዎቹ የተጠቃሚ መተግበሪያዎች ጂፒዩ ማስላትን አይጠቀሙም።

በአጠቃላይ ጂፒዩ ማስላት በዋናነት የሚከናወነው በልዩ የኤችፒሲ ሲስተሞች ለሳይንሳዊ ስሌት ነው። ነገር ግን ጂፒዩ ኮምፒውቲንግን የሚጠቀሙ የተጠቃሚ አፕሊኬሽኖች በአንድ በኩል ሊቆጠሩ ይችላሉ። በዚህ ጉዳይ ላይ "ጂፒዩ ማስላት" የሚለው ቃል ሙሉ በሙሉ ትክክል እንዳልሆነ እና አሳሳች ሊሆን እንደሚችል ወዲያውኑ ልብ ሊባል ይገባል. እውነታው ግን አፕሊኬሽኑ ጂፒዩ ኮምፒውቲንግን የሚጠቀም ከሆነ ይህ ማለት ማዕከላዊው ፕሮሰሰር ስራ ፈትቷል ማለት አይደለም። ጂፒዩ ማስላት ጭነቱን ከማዕከላዊ ፕሮሰሰር ወደ ግራፊክስ ፕሮሰሰር ማስተላለፍን አያካትትም። እንደ ደንቡ, ማዕከላዊው ፕሮሰሰር ስራ እንደበዛበት ይቆያል, እና የግራፊክስ ፕሮሰሰርን መጠቀም, ከማዕከላዊው ፕሮሰሰር ጋር, አፈጻጸምን ያሻሽላል, ማለትም አንድን ስራ ለማጠናቀቅ የሚፈጀውን ጊዜ ይቀንሳል. ከዚህም በላይ ጂፒዩ ራሱ እዚህ ለሲፒዩ እንደ ኮፕሮሰሰር ሆኖ ይሰራል ነገር ግን በምንም አይነት ሁኔታ ሙሉ በሙሉ አይተካውም.

ጂፒዩ ማስላት ለምን ፓናሲ እንዳልሆነ እና የኮምፒዩቲንግ አቅሙ ከሲፒዩ በላይ ነው ማለቱ ትክክል እንዳልሆነ ለመረዳት በማዕከላዊ ፕሮሰሰር እና በግራፊክ ፕሮሰሰር መካከል ያለውን ልዩነት መረዳት ያስፈልጋል።

በጂፒዩ እና በሲፒዩ አርክቴክቸር ውስጥ ያሉ ልዩነቶች

የሲፒዩ ኮሮች አንድ ነጠላ ተከታታይ መመሪያዎችን በከፍተኛ አፈፃፀም ለማስፈፀም የተነደፉ ሲሆኑ የጂፒዩ ኮርሶች በጣም ብዙ ቁጥር ያላቸውን ትይዩ የማስተማሪያ ዥረቶችን በፍጥነት ለማከናወን የተነደፉ ናቸው። ይህ በጂፒዩ እና በማዕከላዊ ፕሮሰሰር መካከል ያለው መሠረታዊ ልዩነት ነው። ሲፒዩ ሁለቱንም ኢንቲጀር እና ተንሳፋፊ-ነጥብ ቁጥሮችን ከሚያስተናግድ ከአንድ የማስተማሪያ ዥረት ለከፍተኛ አፈፃፀም የተሻሻለ አጠቃላይ ወይም አጠቃላይ ዓላማ ፕሮሰሰር ነው። በዚህ አጋጣሚ ማህደረ ትውስታን ከመረጃ እና መመሪያዎች ጋር ማግኘት በአብዛኛው በዘፈቀደ ይከሰታል።

የሲፒዩ አፈጻጸምን ለማሻሻል፣ በተቻለ መጠን ብዙ መመሪያዎችን በትይዩ ለማስፈጸም የተነደፉ ናቸው። ለምሳሌ, ለዚህ ዓላማ, ፕሮሰሰር ኮሮች ከትዕዛዝ ውጪ የሆነ የማስተማሪያ ማስፈጸሚያ ክፍልን ይጠቀማሉ, ይህም ከመጡበት ቅደም ተከተል ውጭ መመሪያዎችን እንደገና ለማዘዝ ያስችላል, ይህም በአተገባበር ውስጥ ያለውን ትይዩነት ደረጃ ለመጨመር ያስችላል. መመሪያዎች በአንድ ክር ደረጃ. ሆኖም ፣ ይህ አሁንም ብዙ ቁጥር ያላቸውን መመሪያዎች በትይዩ አፈፃፀም አይፈቅድም ፣ እና በአቀነባባሪው ኮር ውስጥ ያለው የትይዩ መመሪያ ከፍተኛው በጣም ጠቃሚ ይሆናል። ለዚህም ነው አጠቃላይ-ዓላማ ማቀነባበሪያዎች በጣም ብዙ ቁጥር ያላቸው የማስፈጸሚያ ክፍሎች የላቸውም.

የግራፊክስ ፕሮሰሰር የተሰራው በመሠረቱ በተለየ መንገድ ነው። በመጀመሪያ የተነደፈው እጅግ በጣም ብዙ የሆኑ ትይዩ የትዕዛዝ ዥረቶችን ለማሄድ ነው። በተጨማሪም፣ እነዚህ የትዕዛዝ ዥረቶች ከጅምሩ ትይዩ ናቸው፣ እና በጂፒዩ ውስጥ መመሪያዎችን ለማዛመድ በቀላሉ ምንም ተጨማሪ ወጪዎች የሉም። ጂፒዩ ምስሎችን ለመስራት የተነደፈ ነው። በቀላሉ ለማስቀመጥ፣ እንደ ግብአት የፖሊጎኖች ቡድን ይወስዳል፣ ሁሉንም አስፈላጊ ስራዎችን ያከናውናል እና ፒክስሎችን ያወጣል። ፖሊጎኖች እና ፒክስሎች ማቀነባበር ገለልተኛ ነው ፣ እነሱ በትይዩ ሊሠሩ ይችላሉ ፣ ስለዚህ, በተፈጥሯቸው ትይዩ የሥራ ድርጅት ምክንያት, ጂፒዩ ለ ሲፒዩ መመሪያ ቅደም ተከተል ዥረት በተቃራኒ, መጫን ቀላል የሆኑ በርካታ የማስፈጸሚያ ክፍሎች, ይጠቀማል.

ግራፊክስ እና ማዕከላዊ ፕሮሰሰር እንዲሁ በማህደረ ትውስታ ተደራሽነት መርሆዎች ይለያያሉ። በጂፒዩ ውስጥ የማህደረ ትውስታ ተደራሽነት በቀላሉ ሊተነበይ የሚችል ነው፡ የሸካራነት ቴክሴል ከማህደረ ትውስታ ከተነበበ ከተወሰነ ጊዜ በኋላ የአጎራባች ቴክሴሎች የመጨረሻ ቀን ይመጣል። በሚቀዳበት ጊዜ, ተመሳሳይ ነገር ይከሰታል: አንድ ፒክሰል ወደ ፍሬምቡፈር ከተፃፈ ከጥቂት የሰዓት ዑደቶች በኋላ ከእሱ ቀጥሎ ያለው ፒክሰል ይፃፋል. ስለዚህ ጂፒዩ ከሲፒዩ በተለየ በቀላሉ ትልቅ መሸጎጫ ማህደረ ትውስታ አያስፈልገውም እና ሸካራዎች ጥቂት ኪሎባይት ብቻ ያስፈልጋቸዋል። ከማህደረ ትውስታ ጋር የመስራት መርህ ለጂፒዩዎች እና ሲፒዩዎችም የተለየ ነው። ስለዚህ ሁሉም ዘመናዊ ጂፒዩዎች ብዙ የማስታወሻ መቆጣጠሪያዎች አሏቸው, እና የግራፊክስ ማህደረ ትውስታ እራሱ ፈጣን ነው, ስለዚህ ጂፒዩዎች ብዙ ተጨማሪ አላቸው ትልቅ የማህደረ ትውስታ ባንድዊድዝ ከአለምአቀፍ ፕሮሰሰር ጋር ሲነጻጸር፣ይህም በትልቅ የውሂብ ዥረቶች ለሚሰሩ ትይዩ ስሌቶች በጣም አስፈላጊ ነው።

በአለምአቀፍ ማቀነባበሪያዎች ውስጥ አብዛኛው የቺፕ አካባቢ በተለያዩ የትዕዛዝ እና ዳታ ማቋረጫዎች፣የመግለጫ ክፍሎች፣የሃርድዌር ቅርንጫፍ ትንበያ ክፍሎች፣የመመሪያ ቅደም ተከተል አሃዶች እና የመጀመሪያ፣ሁለተኛ እና ሶስተኛ ደረጃዎች መሸጎጫ ማህደረ ትውስታ ተይዟል። እነዚህ ሁሉ የሃርድዌር ክፍሎች ጥቂት የትዕዛዝ ክሮች በፕሮሰሰር ኮር ደረጃ ላይ በማመሳሰል አፈፃፀሙን ለማፋጠን ያስፈልጋሉ።

የማስፈጸሚያ ክፍሎቹ እራሳቸው በአለምአቀፍ ፕሮሰሰር ውስጥ በአንጻራዊ ሁኔታ ትንሽ ቦታ ይወስዳሉ.

በግራፊክ ፕሮሰሰር ውስጥ ፣ በተቃራኒው ፣ ዋናው ቦታ በብዙ የማስፈጸሚያ ክፍሎች ተይዟል ፣ ይህም በአንድ ጊዜ በሺዎች የሚቆጠሩ የትዕዛዝ ክሮች እንዲሰራ ያስችለዋል።

ከዘመናዊ ሲፒዩዎች በተለየ መልኩ ጂፒዩዎች ለትይዩ ስሌቶች የተነደፉት ብዛት ያላቸው የሂሳብ ስራዎች ናቸው ማለት እንችላለን።

ግራፊክ ላልሆኑ ተግባራት የጂፒዩዎችን የማስላት ሃይል መጠቀም ይቻላል፣ነገር ግን ችግሩ እየተፈታ ያለው በጂፒዩ ውስጥ በሚገኙ በመቶዎች በሚቆጠሩ የማስፈጸሚያ ክፍሎች ላይ ስልተ ቀመሮችን የማመሳሰል እድል የሚፈቅድ ከሆነ ብቻ ነው። በተለይም የጂፒዩ ስሌቶች አንድ አይነት ተከታታይ የሂሳብ ስራዎች ለትልቅ የውሂብ መጠን ሲተገበሩ በጣም ጥሩ ውጤቶችን ያሳያሉ. በዚህ ሁኔታ ፣ የሂሳብ መመሪያዎች ብዛት እና የማህደረ ትውስታ ተደራሽነት ብዛት ሬሾ በበቂ ሁኔታ ትልቅ ከሆነ ጥሩው ውጤት ይገኛል ። ይህ ክዋኔ አነስተኛ የማስፈጸሚያ ቁጥጥር ይፈልጋል እና ትልቅ መሸጎጫ ማህደረ ትውስታ አያስፈልገውም።

የጂፒዩ ከሲፒዩ ከኮምፒውቲሽን ቅልጥፍና አንፃር ያለው ጥቅም የማይካድባቸው ብዙ የሳይንሳዊ ስሌቶች ምሳሌዎች አሉ። ስለዚህ በሞለኪውላር ሞዴሊንግ ፣ በጋዝ ተለዋዋጭነት ፣ በፈሳሽ ተለዋዋጭነት እና ሌሎች ብዙ ሳይንሳዊ አፕሊኬሽኖች በጂፒዩ ላይ ለሚደረገው ስሌት ፍጹም ተስማሚ ናቸው።

ስለዚህ፣ ችግርን ለመፍታት ስልተ ቀመር በሺዎች ከሚቆጠሩ ነጠላ ክሮች ጋር ሊመሳሰል ከቻለ፣ እንዲህ ያለውን ችግር ጂፒዩ በመጠቀም የመፍታት ብቃቱ አጠቃላይ ዓላማ ያለው ፕሮሰሰርን በመጠቀም ከመፍታት የበለጠ ሊሆን ይችላል። ሆኖም፣ ሲፒዩ እና ጂፒዩ የተለያዩ ትዕዛዞችን ስለሚጠቀሙ ብቻ የአንዳንድ ችግሮችን መፍትሄ ከሲፒዩ ወደ ጂፒዩ በቀላሉ ማስተላለፍ አይችሉም። ማለትም አንድ ፕሮግራም በሲፒዩ ላይ ለመፍትሔ ሲጻፍ የ x86 ትዕዛዝ ስብስብ ጥቅም ላይ ይውላል (ወይም ከተወሰነ ፕሮሰሰር አርኪቴክቸር ጋር የሚስማማ የትዕዛዝ ስብስብ) ግን ለጂፒዩ ሙሉ ለሙሉ የተለያዩ የትዕዛዝ ስብስቦች ጥቅም ላይ ይውላሉ፣ ይህም እንደገና ወደ ውስጥ ይገባል የእሱን አርክቴክቸር እና ችሎታዎች ግምት ውስጥ ያስገቡ። ዘመናዊ የ3-ል ጨዋታዎችን በሚገነቡበት ጊዜ የዳይሬክትኤክስ እና የOpenGL ኤፒአይዎች ጥቅም ላይ ይውላሉ፣ ይህም ፕሮግራመሮች ከሻርዶች እና ሸካራዎች ጋር እንዲሰሩ ያስችላቸዋል። ነገር ግን በጂፒዩ ላይ ለግራፊክ ላልሆነ ስሌት DirectX እና OpenGL ኤፒአይዎችን መጠቀም ምርጡ አማራጭ አይደለም።

NVIDIA CUDA እና AMD APP

ለዚህም ነው በጂፒዩ (አጠቃላይ ዓላማ ጂፒዩ፣ ጂፒጂፒዩ) ላይ ግራፊክ ያልሆነ ስሌትን ለመተግበር የመጀመሪያዎቹ ሙከራዎች ሲጀምሩ የብሩክጂፒዩ አቀናባሪ ተነሳ። ከመፈጠሩ በፊት ገንቢዎች የቪዲዮ ካርድ ግብዓቶችን በOpenGL ወይም Direct3D ግራፊክስ ኤፒአይ ማግኘት ነበረባቸው፣ ይህም የፕሮግራም አወጣጥን ሂደትን በእጅጉ አወሳሰበው ፣ ምክንያቱም የተወሰነ እውቀት ስለሚያስፈልገው - ከ 3-ል ነገሮች (ሻሮች ፣ ሸካራዎች ፣ ወዘተ) ጋር አብሮ የመስራት መርሆዎችን መማር ነበረባቸው። ). በሶፍትዌር ምርቶች ውስጥ የጂፒጂፒዩ አጠቃቀም በጣም ውስን የሆነበት ምክንያት ይህ ነበር። ብሩክጂፒዩ የ “ተርጓሚ” ዓይነት ሆኗል። እነዚህ የC ቋንቋ ዥረት ማራዘሚያዎች 3D APIን ከፕሮግራም አውጪዎች ደብቀውታል፣ እና ሲጠቀሙበት፣ የ3D ፕሮግራሚንግ እውቀት አስፈላጊነት በተግባር ጠፋ። የቪዲዮ ካርዶች የኮምፒዩተር ሃይል ለፕሮግራም አድራጊዎች በትይዩ ስሌቶች ተጨማሪ ኮፕሮሰሰር መልክ ይገኛል። የብሩክጂፒዩ አቀናባሪ ፋይሉን በC ኮድ እና ቅጥያዎች፣ የሕንፃ ኮድ ከ DirectX ወይም OpenGL ድጋፍ ካለው ቤተ-መጽሐፍት ጋር ታስሮ ነበር።

በአጠቃላይ ለብሩክጂፒዩ፣ ኤንቪዲ እና ኤቲአይ (አሁን AMD) በጂፒዩዎች ላይ ያለውን የአጠቃላይ ዓላማ ማስላት ቴክኖሎጂን አስተዋውቀዋል እና የ3-ል አፋጣኞችን ስሌት አሃዶች በቀጥታ እና የበለጠ ግልፅ መዳረሻን የሚሰጡ የራሳቸውን አተገባበር ማዳበር ጀመሩ።

በውጤቱም፣ ኤንቪዲ ለትይዩ ኮምፒዩቲንግ ሃርድዌር እና የሶፍትዌር አርክቴክቸር፣ CUDA (Unified Device Architecture) አዘጋጅቷል። የCUDA አርክቴክቸር በNVadi ጂፒዩዎች ላይ ግራፊክስ ያልሆኑ ማስላትን ያስችላል።

የCUDA ኤስዲኬ ይፋዊ የቅድመ-ይሁንታ ስሪት መለቀቅ የተካሄደው በየካቲት 2007 ነው። የCUDA API በቀላል የC ቋንቋ ዘዬ ላይ የተመሠረተ ነው። የCUDA ኤስዲኬ አርክቴክቸር ፕሮግራመሮች በNVDIA ጂፒዩዎች ላይ የሚሰሩ ስልተ ቀመሮችን እንዲተገብሩ እና ልዩ ተግባራትን በC ፕሮግራም ጽሑፍ ውስጥ እንዲያካትቱ ያስችላቸዋል። ኮድን ወደዚህ ቋንቋ በተሳካ ሁኔታ ለመተርጎም CUDA ኤስዲኬ የNVIDIA የራሱ nvcc የትእዛዝ መስመር ማጠናከሪያን ያካትታል።

CUDA እንደ ሊኑክስ፣ ማክ ኦኤስ ኤክስ እና ዊንዶውስ ላሉት ኦፐሬቲንግ ሲስተሞች የሚሻገር ሶፍትዌር ነው።

AMD (ATI) ቀደም ሲል ATI Stream ተብሎ የሚጠራውን እና አሁን AMD Accelerated Parallel Processing (APP) የተባለውን የጂፒጂፒዩ ቴክኖሎጂ የራሱን ስሪት አዘጋጅቷል። AMD APP በክፍት ኢንዱስትሪ ደረጃ OpenCL (Open Computing Language) ላይ የተመሰረተ ነው። የOpenCL መስፈርት የማስተማሪያ-ደረጃ እና የውሂብ ደረጃ ትይዩነትን ያቀርባል እና የጂፒጂፒዩ ቴክኒክን ተግባራዊ ማድረግ ነው። ሙሉ በሙሉ ክፍት መስፈርት ነው እና ለመጠቀም ከሮያሊቲ ነፃ ነው። AMD APP እና NVIDIA CUDA እርስ በርስ የማይጣጣሙ መሆናቸውን ልብ ይበሉ, ነገር ግን የቅርብ ጊዜው የ NVIDIA CUDA ስሪት OpenCL ን ይደግፋል.

በቪዲዮ መቀየሪያዎች ውስጥ ጂፒጂፒዩን በመሞከር ላይ

ስለዚህ፣ የCUDA ቴክኖሎጂ ጂፒጂፒዩን በNVadi ጂፒዩዎች ላይ ለመተግበር ጥቅም ላይ እንደሚውል አውቀናል፣ እና APP API በAMD GPUs ላይ ጥቅም ላይ ይውላል። ቀደም ሲል እንደተገለፀው በጂፒዩ ላይ ግራፊክ ያልሆኑ ኮምፒውተሮችን መጠቀም ጥሩ የሚሆነው እየተፈታ ያለው ችግር ከብዙ ክሮች ጋር መመሳሰል ሲቻል ብቻ ነው። ሆኖም፣ አብዛኛዎቹ የተጠቃሚ መተግበሪያዎች ይህንን መስፈርት አያሟሉም። ሆኖም ግን, አንዳንድ ልዩ ሁኔታዎች አሉ. ለምሳሌ፣ አብዛኞቹ ዘመናዊ የቪዲዮ መቀየሪያዎች በNVDIA እና AMD GPUs ላይ ኮምፒውተርን የመጠቀም ችሎታን ይደግፋሉ።

በብጁ የቪዲዮ መለወጫዎች ውስጥ የጂፒዩ ማስላት እንዴት በብቃት ጥቅም ላይ እንደሚውል ለማወቅ ሶስት ታዋቂ መፍትሄዎችን መርጠናል- Xilisoft Video Converter Ultimate 7.7.2 ፣ Wondershare Video Converter Ultimate 6.0.3.2 እና Movavi Video Converter 10.2.1። እነዚህ ለዋጮች NVIDIA እና AMD ጂፒዩዎችን የመጠቀም ችሎታን ይደግፋሉ, እና ይህን ባህሪ በቪዲዮ መቀየሪያ ቅንጅቶች ውስጥ ማሰናከል ይችላሉ, ይህም የጂፒዩ አጠቃቀምን ውጤታማነት ለመገምገም ያስችልዎታል.

ለቪዲዮ ልወጣ፣ ሦስት የተለያዩ ቪዲዮዎችን ተጠቀምን።

የመጀመሪያው ቪዲዮ 3 ደቂቃ ከ35 ሰከንድ ርዝመት እና 1.05 ጂቢ መጠን ነበረው። በ mkv የውሂብ ማከማቻ ቅርጸት (ኮንቴይነር) ውስጥ ተመዝግቧል እና የሚከተሉት ባህሪዎች ነበሩት

  • ቪዲዮ፡
    • ቅርጸት - MPEG4 ቪዲዮ (H264),
    • ጥራት - 1920 * ኤም * 1080 ፣
    • የቢትሬት ሁነታ - ተለዋዋጭ,
    • አማካይ የቪዲዮ የቢት ፍጥነት - 42.1 Mbit/s
    • ከፍተኛ የቪዲዮ የቢት ፍጥነት - 59.1 Mbit/s,
    • የፍሬም ፍጥነት - 25 fps;
  • ኦዲዮ፡
    • ቅርጸት - MPEG-1 ኦዲዮ ፣
    • የድምጽ የቢት ፍጥነት - 128 ኪባበሰ፣
    • የሰርጦች ብዛት - 2,

ሁለተኛው ቪዲዮ 4 ደቂቃ ከ25 ሰከንድ እና 1.98 ጂቢ መጠን ያለው ቆይታ ነበረው። በMPG የውሂብ ማከማቻ ቅርጸት (ኮንቴይነር) የተቀዳ ሲሆን የሚከተሉት ባህሪያት ነበሩት፡-

  • ቪዲዮ፡
    • ቅርጸት - MPEG-PS (MPEG2 ቪዲዮ) ፣
    • ጥራት - 1920 * ኤም * 1080 ፣
    • የቢትሬት ሁነታ - ተለዋዋጭ.
    • አማካይ የቪዲዮ የቢት ፍጥነት - 62.5 Mbit/s
    • ከፍተኛ የቪዲዮ የቢት ፍጥነት - 100 Mbit/s
    • የፍሬም ፍጥነት - 25 fps;
  • ኦዲዮ፡
    • ቅርጸት - MPEG-1 ኦዲዮ ፣
    • የድምጽ የቢት ፍጥነት - 384 ኪባበሰ፣
    • የሰርጦች ብዛት - 2,

ሶስተኛው ቪዲዮ 3 ደቂቃ ከ47 ሰከንድ እና መጠኑ 197 ሜባ ነበር ። የተፃፈው በ MOV የመረጃ ማከማቻ ቅርጸት (ኮንቴይነር) ሲሆን የሚከተሉትን ባህሪዎች አሉት።

  • ቪዲዮ፡
    • ቅርጸት - MPEG4 ቪዲዮ (H264),
    • ጥራት - 1920 * ኤም * 1080 ፣
    • የቢትሬት ሁነታ - ተለዋዋጭ,
    • ቪዲዮ የቢት ፍጥነት - 7024 ኪባበሰ፣
    • የፍሬም ፍጥነት - 25 fps;
  • ኦዲዮ፡
    • ቅርጸት - AAC,
    • የድምጽ የቢት ፍጥነት - 256 ኪባበሰ፣
    • የሰርጦች ብዛት - 2,
    • የናሙና ድግግሞሽ - 48 kHz.

ሦስቱም የፍተሻ ቪዲዮዎች የቪዲዮ ለዋጮችን በመጠቀም ወደ MP4 የውሂብ ማከማቻ ቅርጸት (H.264 codec) የተቀየሩት በአይፓድ 2 ታብሌት ላይ የውጤት ቪዲዮ ፋይል ጥራት 1280*um*720 ነበር።

እባክዎን በሦስቱም ለዋጮች ውስጥ በትክክል ተመሳሳይ የመቀየሪያ ቅንብሮችን አልተጠቀምንም። ለዚያም ነው የልወጣ ጊዜን መሰረት በማድረግ የቪድዮ መለወጫዎችን ቅልጥፍና ማወዳደር ትክክል ያልሆነው. ስለዚህ, በቪዲዮ መለወጫ Xilisoft ቪዲዮ መለወጫ Ultimate 7.7.2, iPad 2 ቅምጥ - H.264 HD ቪዲዮ ለመለወጥ ጥቅም ላይ ውሏል. ይህ ቅድመ ዝግጅት የሚከተሉትን የኢኮዲንግ መቼቶች ይጠቀማል።

  • ኮዴክ - MPEG4 (H.264);
  • ጥራት - 1280 * ኤም * 720;
  • የፍሬም ፍጥነት - 29.97 fps;
  • የቪዲዮ ቢትሬት - 5210 ኪባበሰ;
  • ኦዲዮ ኮዴክ - AAC;
  • የድምጽ ቢትሬት - 128 ኪባበሰ;
  • የሰርጦች ብዛት - 2;
  • የናሙና ድግግሞሽ - 48 kHz.

Wondershare Video Converter Ultimate 6.0.3.2 የ iPad 2 ቅድመ ዝግጅትን ከሚከተሉት ተጨማሪ ቅንብሮች ጋር ተጠቅሟል።

  • ኮዴክ - MPEG4 (H.264);
  • ጥራት - 1280 * ኤም * 720;
  • የፍሬም ፍጥነት - 30 fps;
  • የቪዲዮ ቢትሬት - 5000 ኪባበሰ;
  • ኦዲዮ ኮዴክ - AAC;
  • የድምጽ ቢትሬት - 128 ኪባበሰ;
  • የሰርጦች ብዛት - 2;
  • የናሙና ድግግሞሽ - 48 kHz.

Movavi Video Converter 10.2.1 የአይፓድ ቅድመ ዝግጅት (1280*um*720፣ H.264) (*.mp4) ከሚከተሉት ተጨማሪ ቅንብሮች ጋር ተጠቅሟል።

  • የቪዲዮ ቅርጸት - H.264;
  • ጥራት - 1280 * ኤም * 720;
  • የፍሬም ፍጥነት - 30 fps;
  • የቪዲዮ ቢትሬት - 2500 ኪ.ቢ.;
  • ኦዲዮ ኮዴክ - AAC;
  • የድምጽ ቢትሬት - 128 ኪባበሰ;
  • የሰርጦች ብዛት - 2;
  • የናሙና ድግግሞሽ - 44.1 kHz.

ሁለቱንም ጂፒዩ እና ሲፒዩ ብቻ በመጠቀም የእያንዳንዱን ምንጭ ቪዲዮ መለወጥ በእያንዳንዱ የቪዲዮ መቀየሪያዎች ላይ አምስት ጊዜ ተከናውኗል። ከእያንዳንዱ ልወጣ በኋላ ኮምፒዩተሩ እንደገና ተነሳ።

በዚህ ምክንያት እያንዳንዱ ቪዲዮ በእያንዳንዱ ቪዲዮ መቀየሪያ ውስጥ አሥር ጊዜ ተለውጧል. ይህንን መደበኛ ስራ በራስ-ሰር ለማድረግ, የግራፊክ በይነገጽ ያለው ልዩ መገልገያ ተጽፏል, ይህም የሙከራ ሂደቱን ሙሉ በሙሉ በራስ-ሰር እንዲያደርጉ ያስችልዎታል.

የመቆሚያ ውቅርን ይሞክሩ

የሙከራ ቦታው የሚከተለው ውቅር ነበረው

  • ፕሮሰሰር - Intel Core i7-3770K;
  • ማዘርቦርድ - ጊጋባይት GA-Z77X-UD5H;
  • ማዘርቦርድ ቺፕሴት - Intel Z77 Express;
  • ማህደረ ትውስታ - DDR3-1600;
  • የማህደረ ትውስታ አቅም - 8 ጂቢ (ሁለት እያንዳንዳቸው 4 ጂቢዎች ሁለት GEIL ሞጁሎች);
  • የማህደረ ትውስታ ኦፕሬቲንግ ሁነታ - ባለሁለት ቻናል;
  • የቪዲዮ ካርድ - NVIDIA GeForce GTX 660Ti (የቪዲዮ ነጂ 314.07);
  • ድራይቭ - ኢንቴል ኤስኤስዲ 520 (240 ጊባ)።

የስርዓተ ክወናው ዊንዶውስ 7 Ultimate (64-ቢት) በቆመበት ላይ ተጭኗል።

መጀመሪያ ላይ ፕሮሰሰሩን እና ሁሉንም ሌሎች የስርዓት ክፍሎችን በተለመደው ሁነታ ሞክረናል. በተመሳሳይ ጊዜ የኢንቴል ኮር i7-3770K ፕሮሰሰር በመደበኛ ድግግሞሽ በ 3.5 GHz በ Turbo Boost ሁነታ ነቅቷል (በቱርቦ ማበልጸጊያ ሁነታ ከፍተኛው የአቀነባባሪ ድግግሞሽ 3.9 ጊኸ ነው)።

ከዚያም የሙከራ ሂደቱን ደግመናል, ነገር ግን ፕሮሰሰሩ ከመጠን በላይ ተዘግቶ ወደ ቋሚ ድግግሞሽ 4.5 GHz (የ Turbo Boost ሁነታን ሳይጠቀሙ). ይህም የመቀየሪያ ፍጥነት በፕሮሰሰር ድግግሞሽ (ሲፒዩ) ላይ ያለውን ጥገኝነት ለመለየት አስችሏል።

በሚቀጥለው የሙከራ ደረጃ፣ ወደ መደበኛው የአቀነባባሪ ቅንጅቶች ተመለስን እና ከሌሎች የቪዲዮ ካርዶች ጋር ተደጋጋሚ ሙከራ እናደርጋለን።

  • NVIDIA GeForce GTX 280 (ሹፌር 314.07);
  • NVIDIA GeForce GTX 460 (ሹፌር 314.07);
  • AMD Radeon HD6850 (ሹፌር 13.1).

ስለዚህ, የቪዲዮ ቅየራ በአራት የቪዲዮ ካርዶች ላይ በተለያዩ ስነ-ህንፃዎች ተካሂዷል.

ሲኒየር NVIDIA GeForce 660Ti ቪዲዮ ካርድ 28 nm ሂደት ቴክኖሎጂ በመጠቀም የተሰራ GK104 (Kepler architecture) ተመሳሳይ ስም ግራፊክስ ፕሮሰሰር ላይ የተመሠረተ ነው. ይህ ጂፒዩ 3.54 ቢሊዮን ትራንዚስተሮች ይዟል እና የመሞት ስፋት 294 ሚሜ 2 አለው።

የGK104 ግራፊክስ ፕሮሰሰር አራት የግራፊክስ ማቀነባበሪያ ዘለላዎችን (የግራፊክስ ፕሮሰሲንግ ክላስተር፣ ጂፒሲ) ያካተተ መሆኑን አስታውስ። የጂፒሲ ዘለላዎች በማቀነባበሪያው ውስጥ ራሳቸውን የቻሉ መሳሪያዎች ናቸው እና ሁሉም አስፈላጊ ግብአቶች ስላሏቸው እንደ የተለየ መሳሪያ መስራት የሚችሉ ናቸው፡ ራስተራይዘር፣ ጂኦሜትሪ ሞተሮች እና ሸካራነት ሞጁሎች።

እያንዳንዱ እንደዚህ ያለ ክላስተር ሁለት SMX (Streaming Multiprocessor) ባለብዙ ፕሮሰሰር አለው፣ ነገር ግን በ GK104 ፕሮሰሰር ውስጥ አንድ መልቲፕሮሰሰር በአንዱ ክላስተር ውስጥ ታግዷል፣ ስለዚህ በአጠቃላይ ሰባት SMX መልቲፕሮሰሰር አለ።

እያንዳንዱ የኤስኤምኤክስ ዥረት መልቲፕሮሰሰር 192 ዥረት ማስላት ኮሮች (CUDA cores) ስላለው የ GK104 ፕሮሰሰር በድምሩ 1344 CUDA ኮሮች አሉት። በተጨማሪም, እያንዳንዱ SMX multiprocessor 16 ሸካራነት አሃዶች (TMU), 32 ልዩ ተግባር አሃዶች (SFU), 32 ሎድ-መደብር አሃዶች (LSU), አንድ PolyMorph ሞተር እና ብዙ ተጨማሪ ይዟል.

GeForce GTX 460 የተመሰረተው በጂፒዩ ኮድ በ GF104 በፌርሚ አርክቴክቸር መሰረት ነው። ይህ ፕሮሰሰር የተሰራው 40nm ሂደት ቴክኖሎጂን በመጠቀም ሲሆን ወደ 1.95 ቢሊዮን ትራንዚስተሮች አሉት።

GF104 ጂፒዩ ሁለት የጂፒሲ ግራፊክስ ማቀነባበሪያ ስብስቦችን ያካትታል። እያንዳንዳቸው አራት የኤስ ኤም ዥረት መልቲፕሮሰሰሮች አሏቸው፣ ነገር ግን በጂኤፍ104 ፕሮሰሰር ውስጥ በአንዱ ክላስተር አንድ መልቲፕሮሰሰር ተቆልፏል፣ ስለዚህ ሰባት ኤስኤም ብዙ ፕሮሰሰር ብቻ አሉ።

እያንዳንዱ የኤስኤምኤስ ዥረት መልቲፕሮሰሰር 48 ዥረት ማስላት ኮሮች (CUDA cores) ይይዛል፣ ስለዚህ GK104 ፕሮሰሰር በድምሩ 336 CUDA ኮሮች አሉት። በተጨማሪም, እያንዳንዱ SM multiprocessor ስምንት ሸካራነት አሃዶች (TMU), ስምንት ልዩ ተግባር አሃዶች (SFU), 16 ሎድ-መደብር አሃዶች (LSU), አንድ PolyMorph ሞተር እና ብዙ ተጨማሪ ይዟል.

GeForce GTX 280 ጂፒዩ የሁለተኛው ትውልድ የNVDIA ዩኒየፍድ ጂፒዩ አርክቴክቸር ነው እና በሥነ ሕንፃ ውስጥ ከፌርሚ እና ከኬፕለር አርክቴክቸር በጣም የተለየ ነው።

GeForce GTX 280 ጂፒዩ የቴክስትቸር ፕሮሰሲንግ ክላስተር (TPCs) ያካትታል፣ ምንም እንኳን ተመሳሳይ ቢሆንም፣ በፌርሚ እና በኬፕለር አርክቴክቸር ውስጥ ካሉት የጂፒሲ ግራፊክስ ማቀነባበሪያ ስብስቦች በጣም የተለዩ ናቸው። በGeForce GTX 280 ፕሮሰሰር ውስጥ በአጠቃላይ አስር ​​እንደዚህ ያሉ ስብስቦች አሉ። እያንዳንዱ የTPC ዘለላ ሶስት የኤስኤምኤስ ዥረት ባለብዙ ፕሮሰሰር እና ስምንት የሸካራነት ናሙና እና ማጣሪያ ክፍሎችን (TMU) ያካትታል። እያንዳንዱ ባለብዙ ፕሮሰሰር ስምንት የዥረት ማቀነባበሪያዎችን (SP) ያካትታል። መልቲፕሮሰሰር ለናሙና እና የሸካራነት ውሂብን ለማጣራት አሃዶችን ይዘዋል፣ በሁለቱም ግራፊክስ እና አንዳንድ የስሌት ስራዎች ውስጥ ጥቅም ላይ ይውላሉ።

ስለዚህ በአንድ የቲፒሲ ክላስተር 24 ዥረት ፕሮሰሰሮች አሉ ፣ እና በ GeForce GTX 280 GPU ውስጥ ቀድሞውኑ 240 የሚሆኑት አሉ።

በፈተና ውስጥ ጥቅም ላይ በሚውሉ በNVDIA ጂፒዩዎች ላይ የቪዲዮ ካርዶች ማጠቃለያ ባህሪያት በሰንጠረዥ ውስጥ ቀርበዋል.

ከዚህ በታች ያለው ሠንጠረዥ የ AMD Radeon HD6850 ቪዲዮ ካርድን አያካትትም ፣ ይህ በጣም ተፈጥሯዊ ነው ፣ ምክንያቱም ቴክኒካዊ ባህሪያቱ ከ NVIDIA ቪዲዮ ካርዶች ጋር ለማነፃፀር አስቸጋሪ ስለሆነ። ስለዚህ, ለየብቻ እንመለከታለን.

በባርትስ የሚል ስያሜ የተሰጠው AMD Radeon HD6850 ጂፒዩ የተሰራው 40nm የሂደት ቴክኖሎጂን በመጠቀም ሲሆን 1.7 ቢሊዮን ትራንዚስተሮች አሉት።

የAMD Radeon HD6850 ፕሮሰሰር አርክቴክቸር የበርካታ የውሂብ አይነቶችን ለማስኬድ ከተለመዱት ፕሮሰሰሮች ጋር የተዋሃደ አርክቴክቸር ነው።

የAMD Radeon HD6850 ፕሮሰሰር 12 የሲምዲ ኮርሶችን ያቀፈ ሲሆን እያንዳንዳቸው 16 ሱፐርስካላር ዥረት ፕሮሰሰር እና አራት የሸካራነት ክፍሎች አሉት። እያንዳንዱ ሱፐርካላር ዥረት ፕሮሰሰር አምስት አጠቃላይ ዓላማ ያላቸው የዥረት ማቀነባበሪያዎችን ይይዛል። ስለዚህ, በአጠቃላይ, AMD Radeon HD6850 GPU 12 * um * 16 * um * 5 = 960 ሁለንተናዊ ዥረት ማቀነባበሪያዎች አሉት.

የ AMD Radeon HD6850 ቪዲዮ ካርድ የጂፒዩ ድግግሞሽ 775 MHz ነው, እና ውጤታማው የ GDDR5 ማህደረ ትውስታ ድግግሞሽ 4000 ሜኸር ነው. የማህደረ ትውስታ አቅም 1024 ሜባ ነው.

የፈተና ውጤቶች

ስለዚህ የፈተናውን ውጤት እንይ። የNVDIA GeForce GTX 660Ti ቪዲዮ ካርድ እና የኢንቴል ኮር i7-3770K ፕሮሰሰር መደበኛ የስራ ሁኔታን ስንጠቀም በመጀመሪያው ሙከራ እንጀምር።

በስእል. ምስል 1-3 ከጂፒዩ ጋር እና ያለ ሶስቱ መለወጫዎችን በመጠቀም ሶስት የሙከራ ቪዲዮዎችን የመቀየር ውጤቶችን ያሳያል።

ከሙከራው ውጤት እንደሚታየው, ጂፒዩ መጠቀም ውጤቱ ግልጽ ነው. ለቪዲዮ መለወጫ Xilisoft ቪዲዮ መለወጫ Ultimate 7.7.2, ጂፒዩ ሲጠቀሙ, የመቀየሪያ ጊዜ በ 14, 9 እና 19% ለመጀመሪያው, ሁለተኛ እና ሶስተኛ ቪዲዮ ይቀንሳል.

ለ Wondershare Video Converter Ultimate 6.0.32, ጂፒዩ በመጠቀም የልወጣ ጊዜን በ 10%, 13% እና 23% ለመጀመሪያው, ሁለተኛ እና ሶስተኛ ቪዲዮ ይቀንሳል.

ነገር ግን ከግራፊክስ ፕሮሰሰር አጠቃቀም የበለጠ የሚጠቅመው መቀየሪያ Movavi Video Converter 10.2.1 ነው። ለመጀመሪያው፣ ለሁለተኛው እና ለሶስተኛው ቪዲዮ፣ የልወጣ ጊዜ መቀነስ በቅደም ተከተል 64፣ 81 እና 41% ነው።

ጂፒዩ የመጠቀም ጥቅም በሁለቱም የምንጭ ቪዲዮ እና በቪዲዮ ቅየራ ቅንጅቶች ላይ የተመረኮዘ መሆኑ ግልፅ ነው፣ ይህም በእውነቱ ውጤታችን የሚያሳየው ነው።

አሁን የኢንቴል ኮር i7-3770K ፕሮሰሰርን ወደ 4.5 GHz ሲያበዛ የልወጣ ጊዜ ትርፍ ምን እንደሚሆን እንይ። በመደበኛ ሁነታ ሁሉም ፕሮሰሰር ኮሮች በሚቀይሩበት ጊዜ ይጫናሉ እና በ Turbo Boost ሁነታ በ 3.7 GHz ድግግሞሽ ይሰራሉ ​​ብለን ከወሰድን ድግግሞሹን ወደ 4.5 GHz ማሳደግ ከ 22% ድግግሞሽ ድግግሞሽ ጋር ይዛመዳል።

በስእል. 4-6 ግራፊክስ ፕሮሰሰር በመጠቀም እና ያለ ሁነታዎች ውስጥ ፕሮሰሰሰ overclocking ጊዜ ሶስት የሙከራ ቪዲዮዎችን የመቀየር ውጤቶችን ያሳያል። በዚህ አጋጣሚ የግራፊክስ ፕሮሰሰርን መጠቀም በልወጣ ጊዜ ውስጥ ትርፍ ለማግኘት ያስችላል።

ለቪዲዮ መለወጫ Xilisoft ቪዲዮ መለወጫ Ultimate 7.7.2, ጂፒዩ ሲጠቀሙ, የመቀየሪያ ጊዜ በ 15, 9 እና 20% ለመጀመሪያው, ሁለተኛ እና ሶስተኛ ቪዲዮ ይቀንሳል.

ለ Wondershare Video Converter Ultimate 6.0.32, ጂፒዩ በመጠቀም የልወጣ ጊዜን በ 10, 10 እና 20% ለመጀመሪያው, ሁለተኛ እና ሶስተኛ ቪዲዮ ይቀንሳል.

ለሞቫቪ ቪዲዮ መለወጫ 10.2.1 የግራፊክስ ፕሮሰሰር መጠቀም የመቀየሪያ ጊዜን በ 59, 81 እና 40% ይቀንሳል.

በተፈጥሮ፣ ሲፒዩ ከመጠን በላይ መጨናነቅ ከጂፒዩ ጋር እና ከሌለ የልወጣ ጊዜዎችን እንዴት እንደሚቀንስ ማየቱ አስደሳች ነው።

በስእል. ምስል 7-9 የግራፊክ ፕሮሰሰርን በመደበኛ ፕሮሰሰር ሁነታ እና በተጨናነቀ ሁነታ ላይ ሳይጠቀሙ ቪዲዮዎችን የሚቀይሩበትን ጊዜ ማወዳደር ውጤቱን ያሳያል። በዚህ ሁኔታ ልወጣ የሚከናወነው በጂፒዩ ላይ ያለ ስሌቶች በሲፒዩ ብቻ ስለሆነ የአቀነባባሪውን የሰዓት ድግግሞሽ መጨመር የመቀየሪያ ጊዜን መቀነስ (የልወጣ ፍጥነት መጨመር) እንደሚያመጣ ግልፅ ነው። የልወጣ ፍጥነት መቀነስ ለሁሉም የሙከራ ቪዲዮዎች በግምት ተመሳሳይ መሆን እንዳለበት በተመሳሳይ ግልጽ ነው። በመሆኑም የቪዲዮ መለወጫ Xilisoft ቪዲዮ መለወጫ Ultimate 7.7.2 ፕሮሰሰር overclocking ጊዜ, የልወጣ ጊዜ 9, 11 እና 9% በቅደም የመጀመሪያው, ሁለተኛ እና ሦስተኛ ቪዲዮ ቀንሷል. ለ Wondershare Video Converter Ultimate 6.0.32, የልወጣ ጊዜ በ 9, 9 እና 10% ለመጀመሪያው, ሁለተኛ እና ሶስተኛ ቪዲዮ ይቀንሳል. መልካም, ለቪዲዮ መለወጫ Movavi Video Converter 10.2.1, የመቀየሪያ ጊዜ በ 13, 12 እና 12% ይቀንሳል.

ስለዚህ የማቀነባበሪያውን ድግግሞሽ በ 20% ከመጠን በላይ ሲዘጋ ፣ የመቀየሪያ ጊዜ በግምት 10% ይቀንሳል።

በግራፊክ ፕሮሰሰር በመጠቀም ቪዲዮዎችን የመቀየር ጊዜን በተለመደው ፕሮሰሰር ሞድ እና ከመጠን በላይ መጫን (ምስል 10-12) እናወዳድር።

ለቪዲዮ መለወጫ Xilisoft ቪዲዮ መለወጫ Ultimate 7.7.2 ፕሮሰሰሩን ከመጠን በላይ ሲጨርስ የመቀየሪያ ጊዜ በ 10 ፣ 10 እና 9% ለመጀመሪያ ፣ ሁለተኛ እና ሶስተኛ ቪዲዮ ይቀንሳል ። ለ Wondershare Video Converter Ultimate 6.0.32, የልወጣ ጊዜ በ 9, 6 እና 5% ለመጀመሪያው, ሁለተኛ እና ሶስተኛ ቪዲዮ ይቀንሳል. መልካም, ለቪዲዮ መለወጫ Movavi Video Converter 10.2.1, የመቀየሪያ ጊዜ በ 0.2, 10 እና 10% ይቀንሳል.

እንደሚመለከቱት ፣ ለለዋጮች Xilisoft ቪዲዮ መለወጫ Ultimate 7.7.2 እና Wondershare Video Converter Ultimate 6.0.32 ፣ ፕሮሰሰሩን ከመጠን በላይ ሲጫኑ የልወጣ ጊዜ መቀነስ የግራፊክስ ፕሮሰሰር ሲጠቀሙ እና ሳይጠቀሙበት በግምት ተመሳሳይ ነው። ምክንያታዊ፣ እነዚህ ለዋጮች በጣም ቀልጣፋ ጂፒዩ ማስላት ስለማይጠቀሙ ነው። ነገር ግን ለሞቫቪ ቪዲዮ መለወጫ 10.2.1 ፣ ጂፒዩ ኮምፒውቲንግን በብቃት ለሚጠቀም ፣ ፕሮሰሰሩን በጂፒዩ ኮምፒውቲንግ ሞድ ላይ ከመጠን በላይ መጨናነቅ የመቀየሪያ ጊዜን በመቀነስ ላይ ትንሽ ተፅእኖ የለውም ፣ይህም ለመረዳት የሚቻል ነው ፣ በዚህ ሁኔታ ውስጥ ዋናው ጭነት በግራፊክ ፕሮሰሰር ላይ ስለሚወድቅ። .

አሁን የፈተናውን ውጤት በተለያዩ የቪዲዮ ካርዶች እንይ።

በግራፊክ ፕሮሰሰር ውስጥ የቪዲዮ ካርዱ የበለጠ ኃይለኛ እና የበለጠ የCUDA ኮሮች (ወይም ሁለንተናዊ ዥረት ማቀነባበሪያዎች ለ AMD ቪዲዮ ካርዶች) የግራፊክስ ፕሮሰሰር ሲጠቀሙ የበለጠ ውጤታማ የቪዲዮ ልወጣ መሆን አለበት። በተግባር ግን እንደዚያ አይሰራም.

በ NVIDIA ጂፒዩዎች ላይ የተመሰረቱ የቪዲዮ ካርዶችን በተመለከተ, ሁኔታው ​​እንደሚከተለው ነው. Xilisoft ቪዲዮ መለወጫ Ultimate 7.7.2 እና Wondershare Video Converter Ultimate 6.0.32 converters በመጠቀም ጊዜ, የልወጣ ጊዜ በተግባር የቪዲዮ ካርድ ዓይነት ላይ የተመካ አይደለም. ማለትም ለ NVIDIA GeForce GTX 660Ti, NVIDIA GeForce GTX 460 እና NVIDIA GeForce GTX 280 የቪዲዮ ካርዶች በጂፒዩ ኮምፒዩቲንግ ሁነታ, የመቀየሪያ ጊዜ ተመሳሳይ ነው (ምስል 13-15).

ሩዝ. 1. የመጀመሪያውን የመቀየር ውጤቶች
በመደበኛ ሁኔታ ቪዲዮን ይሞክሩ
የአቀነባባሪ አሠራር

ፕሮሰሰር በቪዲዮ ካርዶች በጂፒዩ ሁነታ

ሩዝ. 14. የሁለተኛው ቪዲዮ የልወጣ ጊዜ ንጽጽር ውጤቶች

ሩዝ. 15. የሶስተኛው ቪዲዮ የልወጣ ጊዜ ንጽጽር ውጤቶች
በተለያዩ የቪዲዮ ካርዶች በጂፒዩ ሁነታ

ይህ ሊገለጽ የሚችለው በ Xilisoft Video Converter Ultimate 7.7.2 እና Wondershare Video Converter Ultimate 6.0.32 converters ውስጥ የተተገበረው የጂፒዩ ስሌት ስልተ ቀመር በቀላሉ ውጤታማ ባለመሆኑ እና ሁሉንም የግራፊክስ ኮሮች በንቃት መጠቀምን የማይፈቅድ መሆኑ ነው። በነገራችን ላይ, ለእነዚህ ለዋጮች ጂፒዩ በሚጠቀሙበት ሁነታዎች እና ሳይጠቀሙበት የመቀየሪያ ጊዜ ልዩነት አነስተኛ መሆኑን የሚያስረዳው በትክክል ይህ ነው.

በሞቫቪ ቪዲዮ መለወጫ 10.2.1 ሁኔታው ​​ትንሽ የተለየ ነው. እንደምናስታውሰው, ይህ መቀየሪያ የጂፒዩ ስሌቶችን በጣም ውጤታማ በሆነ መንገድ መጠቀም ይችላል, እና ስለዚህ, በጂፒዩ ሁነታ, የመቀየሪያ ጊዜ የሚወሰነው በተጠቀመው የቪዲዮ ካርድ አይነት ላይ ነው.

ነገር ግን በ AMD Radeon HD 6850 የቪዲዮ ካርድ ሁሉም ነገር እንደተለመደው ነው. የቪዲዮ ካርድ ነጂው “ጠማማ” ነው፣ ወይም በመቀየሪያዎቹ ውስጥ የተተገበሩ ስልተ ቀመሮች ከባድ መሻሻል ያስፈልጋቸዋል፣ ነገር ግን ጂፒዩ ማስላት ስራ ላይ ሲውል ውጤቱ አይሻሻልም ወይም አይባባስም።

በበለጠ ሁኔታ, ሁኔታው ​​እንደሚከተለው ነው. ለ Xilisoft Video Converter Ultimate 7.7.2, ጂፒዩ ሲጠቀሙ የመጀመሪያውን የሙከራ ቪዲዮ ለመለወጥ, የመቀየሪያ ጊዜ በ 43% ይጨምራል, እና ሁለተኛውን ቪዲዮ ሲቀይሩ, በ 66%.

ከዚህም በላይ, Xilisoft ቪዲዮ መለወጫ Ultimate 7.7.2 ደግሞ ያልተረጋጋ ውጤቶች ባሕርይ ነው. የልወጣ ጊዜ ልዩነት 40% ሊደርስ ይችላል! ለዚያም ነው ሁሉንም ፈተናዎች አሥር ጊዜ ደጋግመን አማካይ ውጤቱን አስልተናል.

ግን ለ Wondershare Video Converter Ultimate 6.0.32 እና Movavi Video Converter 10.2.1 ሶስቱንም ቪዲዮዎች ለመቀየር ጂፒዩ ሲጠቀሙ የልወጣ ሰአቱ ምንም አይቀየርም! ምናልባት Wondershare Video Converter Ultimate 6.0.32 እና Movavi Video Converter 10.2.1 ወይ ሲቀየሩ AMD APP ቴክኖሎጂን አይጠቀሙም ወይም የ AMD ቪዲዮ ሾፌር በቀላሉ "ጠማማ" ሊሆን ይችላል በዚህ ምክንያት የ AMD APP ቴክኖሎጂ አይሰራም. .

መደምደሚያዎች

በፈተናው ላይ በመመስረት, የሚከተሉት አስፈላጊ መደምደሚያዎች ሊደረጉ ይችላሉ. ዘመናዊ የቪዲዮ መቀየሪያዎች በእውነቱ የጂፒዩ ኮምፒውቲንግ ቴክኖሎጂን መጠቀም ይችላሉ, ይህም የመቀየሪያ ፍጥነትን ለመጨመር ያስችላል. ሆኖም ይህ ማለት ሁሉም ስሌቶች ሙሉ በሙሉ ወደ ጂፒዩ ተላልፈዋል እና ሲፒዩ ጥቅም ላይ ያልዋለ ነው ማለት አይደለም። ሙከራ እንደሚያሳየው የጂፒጂፒዩ ቴክኖሎጂን ሲጠቀሙ ማእከላዊ ፕሮሰሰር ስራ ይበዛበታል ይህ ማለት ኃይለኛ እና ባለብዙ ኮር ማእከላዊ ፕሮሰሰሮችን ለቪዲዮ ልወጣ ጥቅም ላይ በሚውሉ ስርዓቶች ውስጥ መጠቀም ተገቢ ሆኖ ይቆያል። የዚህ ህግ ልዩነት በ AMD ጂፒዩዎች ላይ የ AMD APP ቴክኖሎጂ ነው. ለምሳሌ, Xilisoft ቪዲዮ መለወጫ Ultimate 7.7.2 በተሰራው AMD APP ቴክኖሎጂ ሲጠቀሙ, በሲፒዩ ላይ ያለው ጭነት በእርግጥ ይቀንሳል, ነገር ግን ይህ የመቀየሪያ ጊዜ አይቀንስም, ግን በተቃራኒው ይጨምራል.

በአጠቃላይ ፣በተጨማሪ የግራፊክስ ፕሮሰሰር በመጠቀም ቪዲዮን ስለመቀየር ከተነጋገርን ይህንን ችግር ለመፍታት የቪዲዮ ካርዶችን ከ NVIDIA GPUs ጋር መጠቀም ተገቢ ነው። እንደ ልምምድ እንደሚያሳየው በዚህ ሁኔታ ውስጥ ብቻ የመቀየሪያ ፍጥነት መጨመር ይችላሉ. ከዚህም በላይ የልወጣ ፍጥነት እውነተኛ መጨመር በብዙ ሁኔታዎች ላይ የተመሰረተ መሆኑን ማስታወስ ያስፈልግዎታል. እነዚህ የግቤት እና የውጤት የቪዲዮ ቅርጸቶች ናቸው, እና በእርግጥ, የቪዲዮ መቀየሪያው ራሱ. ለዋጮች Xilisoft ቪዲዮ መለወጫ Ultimate 7.7.2 እና Wondershare Video Converter Ultimate 6.0.32 ለዚህ ተግባር ተስማሚ አይደሉም, ነገር ግን መለወጫ እና Movavi ቪዲዮ መለወጫ 10.2.1 በጣም ውጤታማ የ NVIDIA ጂፒዩ ያለውን አቅም መጠቀም ይችላሉ.

በ AMD ጂፒዩዎች ላይ የቪዲዮ ካርዶችን በተመለከተ, ለቪዲዮ ልወጣ ስራዎች በጭራሽ ጥቅም ላይ መዋል የለባቸውም. በጣም ጥሩ በሆነ ሁኔታ, ይህ የመቀየሪያ ፍጥነት ምንም ጭማሪ አይሰጥም, እና በጣም በከፋ ሁኔታ ውስጥ, በእሱ ውስጥ መቀነስ ይችላሉ.

ዛሬ፣ ስለ ጂፒዩዎች አጠቃላይ ስሌት አጠቃቀም ዜና በሁሉም ጥግ ይሰማል። እንደ CUDA፣ Stream እና OpenCL ያሉ ቃላት በ IT ኢንተርኔት ላይ በሁለት አመታት ውስጥ ከሞላ ጎደል የተጠቀሱ ቃላት ሆነዋል። ሆኖም ግን, እነዚህ ቃላት ምን ማለት እንደሆኑ እና ከኋላቸው ያሉት ቴክኖሎጂዎች ምን ማለት እንደሆነ ሁሉም ሰው አይያውቅም. እና "በመብረር ላይ መሆን" ለለመዱት የሊኑክስ ተጠቃሚዎች ይህ ሁሉ ጥቁር ጫካ ይመስላል.

የጂፒጂፒዩ መወለድ

ማንኛውንም ኮድ እንዲሰራ የተነገረለትን የኮምፒዩተር ብቸኛ አካል ማእከላዊ ፕሮሰሰር መሆኑን ሁላችንም ለማሰብ እንለማመዳለን። ለረጅም ጊዜ ሁሉም ማለት ይቻላል በጅምላ የሚመረቱ ፒሲዎች የስርዓተ ክወና ኮድን ፣ ሁሉንም ሶፍትዌሮችን እና ቫይረሶችን ጨምሮ ሁሉንም ሊታሰቡ የሚችሉ ስሌቶችን የሚይዝ አንድ ፕሮሰሰር ተጭነዋል።

በኋላ ፣ ብዙ-ኮር ማቀነባበሪያዎች እና ባለብዙ ፕሮሰሰር ስርዓቶች ታዩ ፣ በዚህ ውስጥ ብዙ እንደዚህ ያሉ አካላት ነበሩ። ይህም ማሽኖች በአንድ ጊዜ በርካታ ተግባራትን እንዲያከናውኑ አስችሏቸዋል, እና አጠቃላይ (ቲዎሬቲካል) የስርዓት አፈፃፀም በማሽኑ ውስጥ የተጫኑትን የኮርሮች ብዛት በትክክል ጨምሯል. ይሁን እንጂ የባለብዙ ኮር ፕሮሰሰሮችን ለማምረት እና ለመንደፍ በጣም አስቸጋሪ እና ውድ ነበር.

እያንዳንዱ ኮር የራሱ (ይልቁንም ትልቅ) መሸጎጫ፣ መመሪያ ቧንቧ፣ ኤስኤስኢ ብሎኮች፣ ማመቻቸትን የሚያከናውኑ ብዙ ብሎኮች፣ ወዘተ ያለው ውስብስብ እና ውስብስብ x86 አርክቴክቸር የሆነ ሙሉ ፕሮሰሰር መያዝ ነበረበት። ወዘተ. ስለዚህ የኮርሶችን ቁጥር የመጨመር ሂደት በከፍተኛ ሁኔታ ቀንሷል እና ሁለት ወይም አራት ኮርሶች በቂ እንዳልሆኑ ግልጽ የሆነ ነጭ የዩኒቨርሲቲ ካፖርት በቪዲዮ ካርድ ላይ በብዛት ለነበረው ለሳይንሳዊ ስሌቶቻቸው ሌላ የኮምፒዩተር ሃይልን የሚጠቀሙበት መንገድ አግኝተዋል ። (በዚህም ምክንያት የብሩክጂፒዩ መሳሪያው የ DirectX እና OpenGL ተግባር ጥሪዎችን በመጠቀም ተጨማሪ ፕሮሰሰርን በመምሰል ታየ)።

የማዕከላዊው ፕሮሰሰር ብዙ ጉዳቶች የሌሉት የግራፊክስ ማቀነባበሪያዎች እጅግ በጣም ጥሩ እና በጣም ፈጣን የሂሳብ ማሽን ሆኑ እና ብዙም ሳይቆይ የጂፒዩ አምራቾች እራሳቸው የሳይንስ አእምሮ እድገትን በጥልቀት መመርመር ጀመሩ (እና nVidia በእውነቱ ብዙ ቀጥራለች። ተመራማሪዎቹ ለእነሱ እንዲሰሩ). ውጤቱም ውስብስብ ስልተ ቀመሮችን ያለ ምንም ክራንች ወደ ጂፒዩ ትከሻዎች ለማስተላለፍ የሚቻልበትን በይነገጽ የሚገልጽ የ nVidia CUDA ቴክኖሎጂ ነበር። በኋላም ኤቲ (ኤኤምዲ) ተከትሎ በራሱ የቴክኖሎጂ ስሪት ከብረት ዝጋ (አሁን ዥረት)፣ እና በጣም ብዙም ሳይቆይ አንድ መደበኛ ስሪት ከአፕል ታየ፣ OpenCL የሚባል።

ጂፒዩ ሁሉም ነገር ነው?

ሁሉም ጥቅሞች ቢኖሩም የጂፒጂፒዩ ቴክኒክ በርካታ ችግሮች አሉት. ከእነዚህ ውስጥ የመጀመሪያው በጣም ጠባብ የአተገባበር ወሰን ነው. ጂፒዩዎች የኮምፒዩተር ሃይልን እና አጠቃላይ የኮሮችን ብዛት (የቪዲዮ ካርዶች ከአንድ መቶ በላይ ኮርሶችን የያዘ የኮምፒዩተር አሃድ ይይዛሉ) በማሳደግ ከማዕከላዊ ፕሮሰሰር በጣም ቀድመዋል። የቺፕ እራሱ.

በመሠረቱ፣ የጂፒዩ ዋና ተግባር ወደ ሒሳባዊ ስሌቶች የሚወርድ ሲሆን ቀላል ስልተ ቀመሮችን በመጠቀም ብዙ ሊገመት የሚችል መረጃ እንደ ግብአት ይቀበላሉ። በዚህ ምክንያት የጂፒዩ ኮሮች በጣም ቀላል ንድፍ ፣ ትንሽ የመሸጎጫ መጠኖች እና መጠነኛ መመሪያዎች አሏቸው ፣ ይህም በመጨረሻ ዝቅተኛ የምርት ዋጋቸው እና በቺፑ ላይ በጣም ጥቅጥቅ ያለ የመመደብ እድልን ያስከትላል። ጂፒዩዎች በሺዎች የሚቆጠሩ ሰራተኞች እንዳሉት የቻይና ፋብሪካ ናቸው። አንዳንድ ቀላል ነገሮችን በደንብ ያከናውናሉ (እና ከሁሉም በላይ በፍጥነት እና በርካሽ) ነገር ግን አውሮፕላን እንዲሰበሰቡ ካመኑ ውጤቱ ቢበዛ የሃንግ ተንሸራታች ይሆናል።

ስለዚህ የጂፒዩዎች የመጀመሪያ ውሱንነት ትኩረታቸው በፈጣን የሂሳብ ስሌቶች ላይ ሲሆን ይህም የመልቲሚዲያ አፕሊኬሽኖችን ለማገዝ የጂፒዩ ትግበራ ወሰንን የሚገድብ እና ውስብስብ የውሂብ ሂደት ውስጥ የሚሳተፉ ፕሮግራሞችን (ለምሳሌ ፣ ማህደሮች ወይም ምስጠራ ስርዓቶች) ነው ። , እንዲሁም በ fluorescence microscopy ውስጥ የተካተቱ ሶፍትዌሮች, ሞለኪውላዊ ተለዋዋጭ, ኤሌክትሮስታቲክስ እና ሌሎች ለሊኑክስ ተጠቃሚዎች ብዙም ፍላጎት የሌላቸው).

ሁለተኛው የጂፒጂፒዩ ችግር እያንዳንዱ ስልተ ቀመር በጂፒዩ ላይ እንዲተገበር ማስተካከል አይቻልም። የግለሰብ የጂፒዩ ኮሮች በጣም ቀርፋፋ ናቸው፣ እና ኃይላቸው የሚገለጠው አብረው ሲሰሩ ብቻ ነው። ይህ ማለት የፕሮግራም አድራጊው ውጤታማ በሆነ መንገድ እንደሚመሳሰል ሁሉ አልጎሪዝም ውጤታማ ይሆናል ማለት ነው። በአብዛኛዎቹ ሁኔታዎች, ጥሩ የሂሳብ ባለሙያ ብቻ እንደዚህ አይነት ስራን መቋቋም ይችላል, ከእነዚህ ውስጥ በጣም ጥቂት የሶፍትዌር ገንቢዎች አሉ.

በሶስተኛ ደረጃ ደግሞ ጂፒዩዎች በግራፊክስ ካርዱ ላይ ከተጫነ ሜሞሪ ጋር ይሰራሉ ​​ስለዚህ በእያንዳንዱ ጊዜ ጂፒዩ ጥቅም ላይ በሚውልበት ጊዜ ሁለት ተጨማሪ የኮፒ ስራዎች ይኖራሉ፡ የግቤት መረጃ ከራሱ ራም እና ከGRAM ወደ አፕሊኬሽን ማህደረ ትውስታ ይመለስ። እርስዎ ሊገምቱት እንደሚችሉት፣ ይህ በመተግበሪያው የሩጫ ጊዜ ውስጥ ማንኛውንም ጥቅም ሊያስቀር ይችላል (እንደ FlacCL መሣሪያ ሁኔታ ፣ በኋላ የምንመለከተው)።

ግን ያ ብቻ አይደለም። በOpenCL መልክ በአጠቃላይ ተቀባይነት ያለው መስፈርት ቢኖርም፣ ብዙ ፕሮግራመሮች አሁንም የጂፒጂፒዩ ቴክኒክ አቅራቢ-ተኮር አተገባበርን መጠቀም ይመርጣሉ። CUDA በተለይ ተወዳጅ ሆኖ ተገኝቷል ፣ ምንም እንኳን የበለጠ ተለዋዋጭ የፕሮግራም በይነገጽ ቢያቀርብም (በነገራችን ላይ በ nVidia ሾፌሮች ውስጥ OpenCL በ CUDA አናት ላይ ይተገበራል) ፣ ግን መተግበሪያውን ከአንድ አምራች የቪዲዮ ካርዶች ጋር በጥብቅ ያገናኘዋል።

KGPU ወይም Linux kernel በጂፒዩ የተፋጠነ

የዩታ ዩኒቨርሲቲ ተመራማሪዎች የCUDA ማዕቀፍን በመጠቀም አንዳንድ የሊኑክስ ኮርነል ተግባራትን በጂፒዩ ላይ እንዲፈፀሙ የሚያስችል የKGPU ስርዓት ፈጥረዋል። ይህንን ተግባር ለመፈፀም የተሻሻለ ሊኑክስ ከርነል እና ልዩ ዴሞን በተጠቃሚ ቦታ የሚሰራ፣ የከርነል ጥያቄዎችን ሰምቶ ወደ ቪዲዮ ካርድ ሾፌር የCUDA ቤተ-መጽሐፍትን በመጠቀም ይተላለፋል። የሚገርመው፣ እንዲህ ዓይነት አርክቴክቸር የሚፈጥረው ከፍተኛ ወጪ ቢሆንም፣ የKGPU ደራሲዎች የኤኤስኤስ አልጎሪዝምን ተግባራዊ ማድረግ ችለዋል፣ ይህም የኢክሪፕትፍስ ፋይል ስርዓትን ምስጠራ ፍጥነት በ6 ጊዜ ይጨምራል።

አሁን ምን አለ?

በወጣትነቱ እና ከላይ በተገለጹት ችግሮች ጂፒጂፒዩ በእውነቱ የተስፋፋ ቴክኖሎጂ ሆኖ አያውቅም ነገር ግን አቅሙን የሚጠቀም ጠቃሚ ሶፍትዌር አለ (በጥቃቅን ቢሆንም)። የተለያዩ ሃሽ ብስኩቶች ከመጀመሪያዎቹ መካከል ነበሩ፣ ስልተ ቀመሮቹ በትይዩ በጣም ቀላል ናቸው።

የመልቲሚዲያ አፕሊኬሽኖች እንዲሁ ተወልደዋል፣ እንደ FlacCL ኢንኮደር፣ ይህም የድምጽ ትራክን ወደ FLAC ቅርጸት እንድትቀይሩ ያስችልዎታል። አንዳንድ ቅድመ-ነባር አፕሊኬሽኖች የጂፒጂፒዩ ድጋፍ አግኝተዋል፣ ከእነዚህም ውስጥ በጣም ታዋቂው ImageMagick ነው፣ እሱም አንዳንድ ስራውን አሁን OpenCL በመጠቀም ወደ ጂፒዩ ማውረድ ይችላል። የውሂብ መዛግብትን እና ሌሎች የመረጃ መጭመቂያ ስርዓቶችን ወደ CUDA/OpenCL (ATi Unixoids አይወደዱም) ለማስተላለፍ ፕሮጀክቶችም አሉ። የእነዚህን ፕሮጀክቶች በጣም አስደሳች የሆኑትን በሚቀጥሉት የአንቀጹ ክፍሎች እንመለከታለን, አሁን ግን ሁሉንም ለመጀመር እና በተረጋጋ ሁኔታ ለመስራት ምን እንደሚያስፈልገን ለማወቅ እንሞክር.

ጂፒዩዎች በአፈጻጸም ከ x86 ፕሮሰሰር ከረጅም ጊዜ በልጠዋል

በሁለተኛ ደረጃ, ለቪዲዮ ካርድ የቅርብ ጊዜዎቹ የባለቤትነት አሽከርካሪዎች በሲስተሙ ውስጥ መጫን አለባቸው;

በሶስተኛ ደረጃ የስርጭት ገንቢዎች የመተግበሪያ ፓኬጆችን በጂፒጂፒዩ ድጋፍ ማሰራጨት ስላልጀመሩ እኛ እራሳችንን አፕሊኬሽኖች መገንባት አለብን ለዚህም ከአምራቾች CUDA Toolkit ወይም ATI Stream SDK ኦፊሴላዊ ኤስዲኬዎች እንፈልጋለን። አፕሊኬሽኖችን ለመገንባት አስፈላጊ የሆኑትን የራስጌ ፋይሎች እና ቤተ-መጻሕፍት ይይዛሉ።

CUDA Toolkit ጫን

ከላይ ያለውን አገናኝ ይከተሉ እና የCUDA Toolkit ለሊኑክስ ያውርዱ (ከብዙ ስሪቶች መምረጥ ይችላሉ፣ ለFedora፣ RHEL፣ Ubuntu እና SUSE ስርጭቶች፣ ለሁለቱም x86 እና x86_64 architectures ስሪቶች አሉ።) በተጨማሪም፣ ለገንቢዎች የአሽከርካሪዎች ኪቶችን እዚያ ማውረድ ያስፈልግዎታል (ገንቢ ሾፌሮች ለሊኑክስ፣ በዝርዝሩ ውስጥ አንደኛ ናቸው።)

የኤስዲኬ ጫኚውን ያስጀምሩ፡

$ sudo sh cudatoolkit_4.0.17_linux_64_ubuntu10.10.run

መጫኑ ሲጠናቀቅ ሾፌሮችን ወደ መጫን እንቀጥላለን. ይህንን ለማድረግ የX አገልጋይን ዝጋ፡-

# sudo /etc/init.d/gdm ማቆሚያ

ኮንሶሉን ይክፈቱ እና ነጂውን ጫኚውን ያሂዱ:

$ sudo sh devdriver_4.0_linux_64_270.41.19.run

መጫኑ ከተጠናቀቀ በኋላ X ን ያስጀምሩ:

አፕሊኬሽኖች ከCUDA/OpenCL ጋር መስራት እንዲችሉ በLD_LIBRARY_PATH ተለዋዋጭ ውስጥ ከCUDA ቤተ-መጽሐፍት ጋር ወደ ማውጫው የሚወስደውን መንገድ እናዘጋጃለን፡

$ ወደ ውጪ መላክ LD_LIBRARY_PATH=/usr/local/cuda/lib64

ወይም፣ የ32-ቢት ስሪቱን ከጫኑ፡-

$ ወደ ውጪ መላክ LD_LIBRARY_PATH=/usr/local/cuda/lib32

አቀናባሪው በማመልከቻው ግንባታ ደረጃ ላይ እንዲያገኛቸው ወደ CUDA ራስጌ ፋይሎች የሚወስደውን መንገድ መግለጽ ያስፈልግዎታል፡-

$ ወደ ውጪ መላክ C_INCLUDE_PATH=/usr/local/cuda/ያካተት

ያ ነው፣ አሁን CUDA/OpenCL ሶፍትዌር መገንባት መጀመር ትችላለህ።

ATI Stream ኤስዲኬን ጫን

የዥረት ኤስዲኬ መጫን አያስፈልገውም፣ስለዚህ በቀላሉ ከድረ-ገጹ የወረደውን የAMD ማህደር ወደ ማንኛውም ዳይሬክተሩ ፈትተው (ምርጫው ምርጫ ነው) እና ወደ እሱ የሚወስደውን መንገድ በተመሳሳይ LD_LIBRARY_PATH ተለዋዋጭ ይፃፉ።

$ wget http://goo.gl/CNCNo

$ sudo tar -xzf ~/AMD-APP-SDK-v2.4-lnx64.tgz -C /opt

$ ወደ ውጪ መላክ LD_LIBRARY_PATH=/መርጦ/AMD-APP-SDK-v2.4-lnx64/lib/x86_64/

$ ወደ ውጪ መላክ C_INCLUDE_PATH=/መርጦ/AMD-APP-SDK-v2.4-lnx64/ያካትተው/

እንደ CUDA Toolkit፣ x86_64 በ32-ቢት ሲስተሞች በ x86 መተካት አለበት። አሁን ወደ ስርወ ማውጫው ይሂዱ እና የicd-registration.tgz ማህደሩን ይክፈቱ (ይህ ነፃ የፍቃድ ቁልፍ ዓይነት ነው)

$ sudo tar -xzf /opt/AMD-APP-SDK-v2.4-lnx64/icd-registration.tgz -ጋር /

የክሊንፎ መሳሪያውን በመጠቀም የጥቅሉን ትክክለኛ ጭነት/አሰራር እንፈትሻለን፡-

$ /opt/AMD-APP-SDK-v2.4-lnx64/bin/x86_64/clinfo

ImageMagick እና OpenCL

የOpenCL ድጋፍ በImageMagick ውስጥ በጣም ለተወሰነ ጊዜ ይገኛል፣ነገር ግን በማንኛውም ስርጭት በነባሪነት አልነቃም። ስለዚህ፣ IM እራሳችንን ከምንጩ ማጠናቀር አለብን። በዚህ ውስጥ ምንም የተወሳሰበ ነገር የለም, የሚያስፈልግዎ ነገር ሁሉ ቀድሞውኑ በኤስዲኬ ውስጥ ነው, ስለዚህ ስብሰባው ምንም ተጨማሪ ቤተ-ፍርግሞችን ከ nVidia ወይም AMD መጫን አያስፈልገውም. ስለዚህ ማህደሩን ከምንጮቹ ጋር ያውርዱ/ይንቀሉት፡-

$ wget http://goo.gl/F6VYV

$ tar -xjf ImageMagick-6.7.0-0.tar.bz2

$ cd ImageMagick-6.7.0-0

$ sudo apt-get install build-አስፈላጊ

አወቃቀሩን አስጀምረናል እና ውጤቱን ለOpenCL ድጋፍ እንይዛለን፡

$ LDFLAGS=-L$LD_LIBRARY_PATH ./confi gure | grep -e cl.h -e OpenCL

ከትእዛዙ ውስጥ ትክክለኛው ውፅዓት እንደዚህ ያለ ነገር መምሰል አለበት-

የCL/cl.h አጠቃቀምን በመፈተሽ ላይ... አዎ

የCL/cl.h መገኘትን በማጣራት ላይ... አዎ

CL/cl.h በመፈተሽ ላይ... አዎ

የOpenCL/cl.h አጠቃቀምን በመፈተሽ ላይ... አይ

የOpenCL/cl.h መገኘትን በማጣራት ላይ... አይ

ለ OpenCL/cl.h በመፈተሽ ላይ... አይ

የOpenCL ቤተ-መጽሐፍትን በመፈተሽ ላይ... -lOpenCL

"አዎ" የሚለው ቃል በመጀመሪያዎቹ ሶስት መስመሮች ወይም በሁለተኛው (ወይም ሁለቱም አማራጮች በአንድ ጊዜ) ምልክት መደረግ አለበት. ጉዳዩ ይህ ካልሆነ፣ ምናልባት የC_INCLUDE_PATH ተለዋዋጭ በትክክል አልተጀመረም። የመጨረሻው መስመር "አይ" በሚለው ቃል ምልክት ከተደረገበት, ችግሩ በ LD_LIBRARY_PATH ተለዋዋጭ ውስጥ ነው. ሁሉም ነገር ደህና ከሆነ የግንባታ/የመጫን ሂደቱን ይጀምሩ፡-

$ sudo መጫኑን ንጹህ ያድርጉ

ImageMagick ከOpenCL ድጋፍ ጋር መዘጋጀቱን እንፈትሽ፡

$ /usr/local/bin/convert -version | grep ባህሪያት

ባህሪያት፡ OpenMP OpenCL

አሁን የተገኘውን የፍጥነት መጨመር እንለካ። የImageMagick ገንቢዎች የኮንቮል ማጣሪያውን ለዚህ እንዲጠቀሙ ይመክራሉ፡-

$ ጊዜ /usr/bin/ምስል ቀይር.jpg -convolve "-1, -1, -1, -1, 9, -1, -1, -1, -1" image2.jpg

$ ጊዜ /usr/አካባቢ/ቢን/መቀየር ምስል.jpg -convolve "-1, -1, -1, -1, 9, -1, -1, -1, -1" image2.jpg

እንደ መጠን መቀየር ያሉ ሌሎች ክዋኔዎች አሁን በፍጥነት መስራት አለባቸው፣ነገር ግን ImageMagick በአንገት ፍጥነት ግራፊክስን መስራት ይጀምራል ብለው መጠበቅ የለብዎትም። እስካሁን ድረስ የጥቅሉ በጣም ትንሽ ክፍል OpenCL ን በመጠቀም ተሻሽሏል።

FlacCL (Flacuda)

FlacCL የOpenCLን በስራው ውስጥ ያለውን አቅም በመጠቀም በFLAC ቅርጸት የድምጽ ፋይሎች ኢንኮደር ነው። ለዊንዶውስ በCUETools ጥቅል ውስጥ ተካትቷል ፣ ግን ለሞኖ ምስጋና ይግባውና በሊኑክስ ላይም ጥቅም ላይ ሊውል ይችላል። ማህደርን ከመቀየሪያ ጋር ለማግኘት የሚከተለውን ትዕዛዝ ያሂዱ፡-

$ mkdir flaccl && ሲዲ flaccl

$ wget www.cuetools.net/install/flaccl03.rar

$ sudo apt-get install unrar mono

$ unrar x fl accl03.rar

ፕሮግራሙ የOpenCL ቤተ-መጽሐፍትን እንዲያገኝ፣ ተምሳሌታዊ ማገናኛ እንሰራለን፡-

$ ln -s $LD_LIBRARY_PATH/libOpenCL.so libopencl.so

አሁን ኢንኮደሩን እናስኬድ፡-

$ ሞኖ CUETools.FLACCL.cmd.exe music.wav

የስህተት መልእክት "ስህተት: የተጠየቀው ማጠናቀር መጠን ከሚፈለገው የ 32 የስራ ቡድን መጠን ይበልጣል" በስክሪኑ ላይ ከታየ በስርዓታችን ውስጥ ያለው የቪዲዮ ካርድ በጣም ደካማ ነው, እና የተሳተፉት ኮሮች ቁጥር ወደተገለጸው ቁጥር መቀነስ አለበት. XX የሚፈለገው የኮሮች ብዛት በሆነበት '- ባንዲራ ቡድን መጠን XX'ን በመጠቀም።

ወዲያውኑ እናገራለሁ በ OpenCL ረጅም የጅምር ጊዜ ምክንያት ፣ የሚታዩ ጥቅሞች ሊገኙ የሚችሉት በበቂ ረጅም ትራኮች ላይ ብቻ ነው። FlacCL አጫጭር የድምጽ ፋይሎችን ከባህላዊው ስሪት ጋር በተመሳሳይ ፍጥነት ያስኬዳል።

oclHashcat ወይም ፈጣን የጭካኔ ኃይል

ቀደም ብዬ እንደተናገርኩት፣ የተለያዩ ብስኩቶች እና brute-force የይለፍ ቃል አዘጋጆች የጂፒጂፒዩ ድጋፍን ወደ ምርቶቻቸው ከጨመሩት መካከል የመጀመሪያዎቹ ናቸው። ለነርሱ አዲሱ ቴክኖሎጂ የእውነተኛ ቅዱሳን ስራ ሆነ፣ ይህም በተፈጥሮ በቀላሉ ትይዩ የሆኑ ኮድን ወደ ፈጣን የጂፒዩ ፕሮሰሰሮች ትከሻ በቀላሉ ለማስተላለፍ አስችሎታል። ስለዚህ, በአሁኑ ጊዜ በደርዘን የሚቆጠሩ የእንደዚህ አይነት ፕሮግራሞች የተለያዩ አተገባበር መኖሩ አያስገርምም. ግን በዚህ ጽሑፍ ውስጥ ስለ አንዱ ብቻ እናገራለሁ - oclHashcat.

oclHashcat OpenCL ን በመጠቀም የጂፒዩውን ሃይል በመጠቀም ሃሽቸውን በመጠቀም የይለፍ ቃላቶቻቸውን በከፍተኛ ፍጥነት መገመት የሚችል ጠላፊ ነው። በፕሮጀክት ድህረ ገጽ ላይ የታተሙትን መለኪያዎች ካመኑ በ nVidia GTX580 ላይ MD5 የይለፍ ቃላትን የመምረጥ ፍጥነት በሰከንድ እስከ 15,800 ሚሊዮን ውህዶች ነው፣ ለዚህም ምስጋና ይግባውና oclHashcat በአማካይ ውስብስብነት ያለው ባለ ስምንት ቁምፊ የይለፍ ቃል በ9 ደቂቃ ውስጥ ማግኘት ይችላል።

ፕሮግራሙ OpenCL እና CUDA፣ MD5፣ md5($pass.$salt)፣ md5(md5($pass))፣ vBulletin ስልተ ቀመሮችን ይደግፋል።< v3.8.5, SHA1, sha1($pass.$salt), хэши MySQL, MD4, NTLM, Domain Cached Credentials, SHA256, поддерживает распределенный подбор паролей с задействованием мощности нескольких машин.

$7z x oclHashcat-0.25.7z

$cd oclHashcat-0.25

እና ፕሮግራሙን ያሂዱ (የሃሽ ናሙና ዝርዝር እና የናሙና መዝገበ ቃላት እንጠቀማለን)

$ ./oclHashcat64.bin example.hash ?l?l?l?l ምሳሌ

oclHashcat የተጠቃሚውን ስምምነት ጽሑፍ ይከፍታል፣ ይህም "አዎ" በማለት መስማማት አለብዎት። ከዚህ በኋላ የፍለጋ ሂደቱ ይጀምራል, ግስጋሴውን በመጫን ሊገኝ ይችላል . ሂደቱን ለአፍታ ለማቆም ጠቅ ያድርጉ

ለመቀጠል - . እንዲሁም ቀጥታ መቁጠርን መጠቀም ይችላሉ (ለምሳሌ ከ aaaaaaaaa እስከ zzzzzzzz)፡-

$ ./oclHashcat64.bin hash.txt ?ል?ል?ል?ል?ል?ል

እና የመዝገበ-ቃላቱ የተለያዩ ማሻሻያዎች እና ቀጥተኛ የፍለጋ ዘዴ, እንዲሁም ውህደቶቻቸው (ስለዚህ በፋይል ሰነዶች / examples.txt ውስጥ ማንበብ ይችላሉ). በእኔ ሁኔታ፣ በመላው መዝገበ ቃላት ውስጥ የመፈለግ ፍጥነት 11 ደቂቃ ነበር፣ ቀጥታ ፍለጋ (ከአaaaaaa እስከ zzzzzzzz) 40 ደቂቃ ያህል ፈጅቷል። የጂፒዩ (RV710 ቺፕ) አማካይ ፍጥነት 88.3 ሚሊዮን/ሰ ነበር።

መደምደሚያዎች

ብዙ የተለያዩ ገደቦች እና የሶፍትዌር ልማት ውስብስብነት ቢኖርም ጂፒጂፒዩ ከፍተኛ አፈጻጸም ያላቸው የዴስክቶፕ ኮምፒተሮች የወደፊት ዕጣ ነው። ነገር ግን በጣም አስፈላጊው ነገር የዚህን ቴክኖሎጂ ችሎታዎች አሁን መጠቀም ይችላሉ, እና ይህ ለዊንዶውስ ማሽኖች ብቻ ሳይሆን ለሊኑክስም ጭምር ነው.