دسترسی به GPU از طریق جاوا، باعث افزایش توان و قدرت قابل توجهی در برنامه میشود. در این مقاله نحوهی کار GPU و نحوهی دسترسی به GPU از طریق جاوا را توضیح میدهم.
ظاهرا برنامهنویسی GPU، مانند یک دنیای مجزا از برنامهنویسی جاواست... این موضوع عجیب نیست، چرا که اکثر منابع مورد استفاده و کاربردی برای جاوا، برای GPUها قابلاجرا نیستند!
برای اینکه به موضوع اصلی برسیم، کمی در خصوص معماری و ساختار GPU، به همراه تاریخچهی مختصری از آن را توضیح میدهم، که پرداختن به موضوع برنامهنویسی سختافزار را آسانتر میکند. وقتی توضیح دادم که چگونه محاسبات GPU از محاسبات CPU متفاوت است، نشان خواهم داد که چگونه از GPUها در دنیای جاوا استفاده کنیم. در نهایت، فریم ورک و کتابخانههای معروف و دردسترس برای نوشتن کد جاوا و اجرای آن در GPUها را شرح خواهم داد و نمونههایی از کدنویسی را ارائه خواهم کرد.
فهرست/مندرجات
• مقدمه
• اجرای برنامهها بر روی GPU
• ظهور GPGPU
• OpenCL و Java
• CUDA و Java
• ماندن در بالای کد low-level
• نتیجهگیری
- برآورد مشکلات سیستم
- بررسی کلی سخت افزار
- بررسی کلی نرم افزار
سخت افزار
- پاکسازی داخل سیستم و مادربورد
- سرویس CPU و فن CPU
- سرویس Power supply و فن Power supply
- پاکسازی موس، کیبورد و مانیتور
- تهیه باطری جدید برای CMOS/BIOS
- پاکسازی سوکت ها و پورت های سیستم
[- قطع و غیرفعال کردن مودم Dialup]
[- قطع و غیرفعال کردن درایو Floppy]
- تعویض کابلهای کهنه/آسیب دیده
- ریست و تنظیم مجدد مانیتور
- بررسی کابلهای داخل و بیرون سیستم
نرم افزار
- بک آپ گیری از اطلاعات!
- آپدیت Firmware مادربورد(BIOS EEPROM)
- ریست و تنظیم مجدد BIOS/CMOS
- فرمت(wipe) دوره ای عمقی پارتیشن ها یا کل دیسک
- نصب مجدد سیستم عامل
[- ریستارت سیستم عامل بعد از انجام تنظیمات]
- تنظیم تاریخ و ساعت سیستم
- نصب نرم افزارهای کتابخانه ای/Runtime
- دانلود [و رایت] و نصب Driver ها
- حذف نرم افزارهای بلااستفاده و مزاحم
- پاکسازی فایلها و پوشه های اضافی و temp
[- بهینه سازی و تنظیم رجیستری]
- نصب و بروزرسانی نرم افزارهای کاربردی
- نصب ضدبدافزار سبک و قدرتمند
- بروزرسانی ضدبدافزار
- اسکن کل پارتیشن ها توسط ضدبدافزار
- بهینه سازی تنظیم سرویس ها
- Defrag/Optimize پارتیشن ها(بجز SSD ها)
- پاکسازی و تنظیم startup سیستم عامل
- پاکسازی system restore point ها
شبکه
- پاکسازی کش DNS و ریست Socket سیستم
- آپدیت Firmware مودم ADSL/DSL
- تنظیم subnet mask مودم به 255.255.255.128 یا بالاتر
- تنظیم Subnet prefix مودم به 25
- تنظیم DNS مودم به 208.67.222.222 و 8.8.8.8
- تنظیم Security protocol مودم به WPA2 یا WPA3
- خاموش کردن قابلیت WPS مودم
- پنهان کردن SSID مودم
تهدیدهای سایبری خودروهای مدرن، به دلیل افزایش فناوری های دیجیتال و اتصال به اینترنت، درحال تبدیل شدن به یک چالش جدی هستن... با توسعه سیستم های نرم افزاری، ارتباطات بی سیم و فناوری های خودران، خودروهای امروزی در معرض حملات سایبری مختلفی قرار دارند که میتواند امنیت و حریم خصوصی سرنشینان خودرو را به خطر بیندازد...
دسترسی غیرمجاز به سیستم های حیاتی: هکرها ممکن است از طریق آسیبپذیری های نرمافزاری، کنترل سیستم هایی مانند ترمز، فرمان یا حتی موتور را به دست بگیرند و باعث ایجاد حوادث جانی شوند!
سرقت داده های حساس: بسیاری از خودروها اطلاعاتی مانند موقعیت جغرافیایی، تاریخچه سفرها، شماره های تماس، و حتی اطلاعات شخصی راننده را ذخیره می کنند که در صورت نفوذ، میتواند مورد سوء استفاده قرار گیرند.
حملات بدافزاری: نصب نرم افزارهای مخرب روی سیستم های خودرو میتواند عملکرد آن را مختل کند یا امکان جاسوسی از کاربر خودرو را فراهم سازد.
حملات به شبکه های ارتباطی خودرو (V2X): خودروهای متصل (Connected cars) از فناوری هایی مانند V2V (ارتباط خودرو با خودرو / VechineToVechile) و V2I (ارتباط خودرو با زیرساخت) استفاده می کنند که در صورت عدم رمزنگاری مناسب داده ها و اتصالات، ممکن است مورد حمله قرار گیرند.
حملات اشغال سرویس (DoS): با overload کردن سیستم های ارتباطی یا عملیاتی خودرو، ممکن است سرویس های حیاتی خودرو از کار بیفتند.
و...
در تصویر زیر، برخی از تهدید های خودروهای مدرن توسط شرکت KasperySky طراحی شده است:
نکته: منظور از Core همون هسته های فیزیکی(چیپ) هستش که داخل CPU قرار دارن و هرکدوم میتونن یک دستورالعمل(مثلاً برنامه) رو به تنهایی پردازش کنن. هسته ها قادرن هرکدوم به تنهایی و بصورت موازی یک برنامه رو اجرا کنن. مثلاً یک CPU با 4 هسته فیزیکی قادره 4 برنامه رو بصورت موازی اجرا کنه ولی بیشتر از 4 برنامه، دستورالعمل های برنامه بین همه هسته ها تقسیم میشه.
نکته 2: منظور از Thread (در حوزه سخت افزار) هسته های مجازی/نرم افزاری هستش که داخل Core قرار دارن و هرکدوم میتونن یک دستورالعمل(مثلاً برنامه) رو پردازش کنن. بنابراین یک CPU با 4 Core درواقع 8 هسته داره. 4 هسته فیزیکی و 4 هسته مجازی. به این عمل Hyperthreading هم گفته میشه.
نکته 3: CPU های دارای Turbo frequency قادرن بصورت اتوماتیک قدرت پردازشی خودشون رو افزایش بدن. مثلاً از 3.10GHz به 4.10GHz (درصورتیکه دما، باطری و... در حد مناسبی باشه)
نکته 4: Cache CPU حافظه لطیف و موقتی CPU هست که دستورالعمل های تکراری برنامه های کاربر رو در خودش ذخیره میکنه و مستقیماً از انجا دستورالعمل ها رو پردازش میکنه(بجای Hard Disk یا RAM). بنابراین باعث افزایش سرعت پردازش تا چند برابر میشه.
نکته 5: کلمه K در مشخصات فنی CPU معرف Unlock هستش، یعنی این CPU قفل نشده و قابلیت Overclocking رو داراست.
نکته 6: Resolution (رزولوشن) به تعداد پیکسل های موجود درون صفحه گفته میشه که بصورت عمودی و افقی در صفحه چیده شدن. در واقع هر چی رزولوشن صفحه نمایش بیشتر باشه، کیفیتش هم بالاتره. رزولوشن مثل 1024x768 یا 240x320
نکته 7: Screen size (سایز صفحه) به اندازه فیزیکی صفحه نمایش گفته میشه که برحسب اینچ توسط قطر صفحه محاسبه میشه. هرچی بیشتر باشه، اندازه صفحه هم بزرگتره. مثل "15 یا "17
نکته 8: Color depth (عمق رنگ) به مجموع رنگ هایی که صفحه نمایش امکان نمایش شون رو داره گفته میشه. هرچی بیشتر باشه، کیفیت و زیبایی تصاویر هم بیشتر میشه. مثل 32bit یا 16bit
نکته 9: برای تشریح مشخصات CPU های Intel به این صفحه مراجعه کنید. https://intel.com/content/www/us/en/processors/processor-numbers.html
برای حل مشکلات ADB گوگل با درایور گوشی بصورت زیر عمل کنید:
1- هرگز روی سیستمی که کمتر از 2 گیگ RAM داره ویندوز نسخه 64 بیتی نصب نکنید. چون اینکار بیشتر باعث کند شدن ویندوز میشه.
ویندوزهای نسخه 64 بیتی به حداقل ۴ گیگ RAM نیاز دارن.
2- حتاالمکان روی سیستمی که 8 گیگ یا بیشتر RAM داره ویندوز نسخه 32 بیتی نصب نکنید. درغیراینصورت فقط 4 گیگ RAM توسط CPU قابل دستیابی هستش و بقیه RAM بدون استفاده باقی می مونن.
3- درسیستم های BIOS یا پارتیشن نوع MBR/DOS، بهتره در حین نصب ویندز فقط درایو نصب ویندوز رو پارتیشن بندی کنید و بقیه درایوهارو از داخل خود ویندوز(بعد از نصبش) پارتیشن بندی کنید. اون هم از نوع Logical.
با اینکار پارتیشن های Primary بیشتری براتون باقی می مونه... و برای نصب سیستم عامل دوم و سوم به مشکل نمی خورید.
نکته: این موضوع راجب سیستم های UEFI یا پارتیشن نوع GPT صدق نمیکنه.
3- هرگز از درایو اصلی ویندوز(که ویندوز داخلش نصبه) برای ذخیره اطلاعت شخصی(مثل عکس، فیلم، موسیقی و...) استفاده نکنید.
اگر مشکل جدی برای ویندوز یا این درایو پیش بیاد معمولاً اطلاعتتون هم پاک میشه.
4- اگر از لپ تاپ استفاده می کنید، برای افزایش قدرت لپ تاپ و استفاده از تمام توان دستگاه اون رو به حالت Maximum performance تنظیم کنید.
نکته: در زمانهایی که لپ تاپ از باطری بجای برق مستفیم تغذیه میکنه، از حالت Maximum battery life یا Battery saver استفاده کنید.
در ویندوز Xp و ویندوز 7: به مسیر Start -> Control panel برید و در پنجره باز شده گزینه System and Security رو انتخاب کنید. سپس روی گزینه Power Options کلیک و در پنجره جدید Maximum performance رو انتخاب کنید.
در ویندوز 8 و ویندوز 10: در سمت راست نوار استارت روی آیکون باطری کلیک کنید سپس گزینه Maximum performance رو انتخاب کنید.
5- بصورت پیشفرض، ویندوز DLL برنامه های باز و بعد بسته شده رو [بخاطر افزایش سرعت باز کردن مجدد اون برنامه] unload نمی کنه. که اینکار باعث اشغال حافظه و گاهی کندی میشه. برای تغییر این رفتار، میتونید دستورالعمل زیر رو انجام بدید:
- ابتدا برنامه RegEdit رو در مسیر X:\Windows\RegEdit پیدا و اجرا کنید.
- سپس به آدرس HKEY_LOCAL_MACHINE -> Software -> Microsoft -> Windows -> CurrentVersion -> Explorer برید.
- حالا بر روی صفحه راست کلیک و گزینه New -> DWORD(X bit) value رو انتخاب کنید. و نامش رو بذارید AlwaysUnloadDLL
- در آخر روی همین گزینه دوبار کلیک و Value data رو 1 قرار بدید.
فهرست مندرجات:
UPS یک منبع تغذیه External و خودکار هست که برق سرور یا سایر دستگاه های شبکه رو هنگام قطع تامین می کنه.
این دستگاه دارای یک منبع تغذیه بدون وقفه هست که می تونه با سیستم عامل ارتباط برقرار کنه و سیستم رو هنگام قطع برق برای مدتی کوتاه روشن نگه داره.
منابع انرژی UPS معمولاً یک باطری قابل شارژ یا ژنراتور هست که موقع قطع برق بلافاصه فعال می شه و برق سیستم رو تولید می کنه.
به تازگی، دستگاه های جدید UPS به کاربر هشدار می دن(توسط ارتباط با پورت به سیستم) که فعالیت ها و داده های خودشون رو ذخیره کنن و سپس سیستم رو خاموش کنه، سپس بعد از طی مدت زمانی(که از قبل تعیین شده) سیستم رو طبق روال عادی غیر فعال می کنه.
برای استفاده از این کدها برنامه "تماس" گوشی رو باز کنید و کد رو بدقت وارد کنید:
کد | توضیحات |
---|---|
*#*#4636#*#* | Display information about Phone, Battery and Usage statistics |
*#*#7780#*#* | Restting your phone to factory state-Only deletes application data and applications |
*2767*3855# | It’s a complete wiping of your mobile also it reinstalls the phones firmware |
*#*#34971539#*#* | Shows completes information about the camera |
*#*#7594#*#* | Changing the power button behavior-Enables direct poweroff once the code enabled |
*#*#273283*255*663282*#*#* | For a quick backup to all your media files |
*#*#197328640#*#* | Enabling test mode for service activity |
*#*#232339#*#* OR *#*#526#*#* | Wireless Lan Tests |
*#*#232338#*#* | Displays Wi-Fi Mac-address |
*#*#1472365#*#* | For a quick GPS test |
*#*#1575#*#* | A Different type GPS test |
*#*#0283#*#* | Packet Loopback test |
*#*#0*#*#* | LCD display test |
*#*#0673#*#* OR *#*#0289#*#* | Audio test |
*#*#0842#*#* | Vibration and Backlight test |
*#*#2663#*#* | Displays touch-screen version |
*#*#2664#*#* | Touch-Screen test |
*#*#0588#*#* | Proximity sensor test |
*#*#3264#*#* | Ram version |
*#*#232331#*#* | Bluetooth test |
*#*#7262626#*#* | Field test |
*#*#232337#*# | Displays bluetooth device address |
*#*#8255#*#* | For Google Talk service monitoring |
*#*#4986*2650468#*#* | PDA, Phone, Hardware, RF Call Date firmware info |
*#*#1234#*#* | PDA and Phone firmware info |
*#*#1111#*#* | FTA Software version |
*#*#2222#*#* | FTA Hardware verion |
*#*#44336#*#* | Displays Build time and change list number |
*#06# | Displsys IMEI number |
*#*#8351#*#* | Enables voice dialing logging mode |
*#*#8350#*#* | Disables voice dialing logging mode |
##778 (+call) | Brings up Epst menu |