|
Toshkent axborot texnologiyalari universiteti
|
səhifə | 15/18 | tarix | 27.05.2023 | ölçüsü | 4,21 Mb. | | #113620 |
| Tayyor Dissertatsiya ishi Abdusalomov Saidmalikxonusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
using System.IO;
namespace ConsoleAppTESTSTEPEN_CPU_AND_GPU_
{
class Program
{
static string Upload(Int64 number,Int64 degree_of)
{
string OUT = "";
string[] Chord_values = new string[2];
Int64 Degree_of = degree_of;
Int64 Number = number;
Chord_values[0] = Number.ToString();
Chord_values[1] = Degree_of.ToString();
File.WriteAllLines("input.txt", Chord_values);//kiruvchi fayl ma`lumotlari
OUT+="input number:" + Number.ToString()+"\n";
OUT+="input degree of number:" + Degree_of.ToString()+"\n";
DateTime running_CPU_application = DateTime.Now;//Ishga tushirish vaqtini kiritish
Process proc= Process.Start("ConsoleApplication29.exe");//exe X64da ishlovchi CPUni ishlatish uchun
while (!proc.HasExited) ;//dastur tugallanguncha kutish
DateTime stop_CPU_application = DateTime.Now;//Dastur to‘xtash vaqtini kiritish
string[]outs = File.ReadAllLines("out.txt");//Natijalarni olish
File.Delete("out.txt");
OUT+="CPU:"+"\n";
if (outs.Length>0)
{
for (int j = 0; j < outs.Length; j++)
{
OUT+=outs[j]+"\n";
}
}
else { OUT+="no values"+"\n"; }
OUT+="running_CPU_application:" + running_CPU_application.ToString()+"\n";
OUT+="stop_CPU_application:" + stop_CPU_application.ToString()+"\n";
OUT+="GPU:"+"\n";
DateTime running_GPU_application = DateTime.Now;
Process procGPU = Process.Start("korenXN.exe");
while (!procGPU.HasExited) ;
DateTime stop_GPU_application = DateTime.Now;
string[] outs2 = File.ReadAllLines("out.txt");
File.Delete("out.txt");
if (outs2.Length > 0)
{
for (int j = 0; j < outs2.Length; j++)
{
OUT+=outs2[j]+"\n";
}
}
else { OUT+="no values"+"\n"; }
OUT+="running_GPU_application:" + running_GPU_application.ToString()+"\n";
OUT+="stop_GPU_application:" + stop_GPU_application.ToString()+"\n";
return OUT;//Natijalarni qaytarish
}
static void Main()
{
start += 36*36;
Degree_of[n] = degree_of_strat;
degree_of_strat +=1000;
}
for (int n = 0; n < size; n++)
{
outs[n] = Upload(Number[n], Degree_of[n]);
Console.WriteLine(outs[n]);
}
System.IO.File.WriteAllLines("result.txt", outs);//result.txt fayliga barcha natijalarni yuklash uchun.
}
}
}
Manba ma'lumotlari bilan fayl yaratilgan, so‘ngra protsessor yoki GPU yordamida algoritmlarning.exe fayllarini ketma-ket ishga tushirilgan va ularning ishlash vaqtini o‘lchangan, so‘ngra algoritmlarning ishlash vaqti va natijalarini natijalar.txt deb nomlangan faylga ko‘chiriladi. Protsessorga tushadigan yuklamani o‘lchash uchun Windows диспетчер задач dasturi ishlatilgan.
3.14- rasm. Tarjibani bajarish vaqtida grafik protsessorga tushayotgan yuklama
Ushbu tajriba shuni ko‘rsatdiki hajmi kichik tasvirlarga GPU orqali ishlov berish unchalik ham effektiv emas, aksincha vazifaning hajmi oshib brogan sari GPUning samaradorlik ko‘rsatkichi ham ko‘tarilib boradi. Natijalardan kelib chiqib 20mb ortiq fayllarga qayta ishlov berishdagina GPUdan foydalanish foydali.
3.15- rasm. Haar veyvlet o‘zgartirish natijasida vujudga kelgan tasvir
3.16- rasm. Haar veyvletda ishlov berilgan ikkinchi tasvir
Haar veyvleyt tasvirni past chastotali va yuqori chastotali komponentlarga ajratish uchun ishlatiladi. Past chastotali komponent tasvirning qo'pol yaqinlashuvi ham deyish mumkin, yuqori chastotali komponent esa tafsilotlar va teksturalarni o'z ichiga oladi.
3.1-jadval
CUDA yordamida 2 o‘lchamli tasvirga haar veyvlet o‘zgaritish bo‘yicha CPU va GPU ni natijalarini taqqoslash
Fayl hajmi (mb)
|
Fayl tipi
|
Bajarish uchun ketgan vaqt (sekund)
|
CPU
|
GPU
|
0,5mb
|
5mpix.JPG
|
0,2sek
|
1,2 sek
|
1,6mb
|
8mpix.JPG
|
0,6 sek
|
1,3 sek
|
26,5mb
|
48mpix.JPG
|
3,5 sek
|
1,7 sek
|
51,7mb
|
64mpix.JPG
|
5,9 sek
|
1,8 sek
|
97,5mb
|
108mpix.JPG
|
9,7 sek
|
2,0 sek
|
3.17- rasm. CUDA yordamida 2 o‘lchamli tasvirga haar veyvlet o‘zgaritish bo‘yicha CPU va GPU ni natijalarini taqqoslash grafigi
Dostları ilə paylaş: |
|
|