رفتن به مطلب
جامعهٔ برنامه‌نویسان مُدرن ایران

جستجو در تالارهای گفتگو

در حال نمایش نتایج برای برچسب های 'کودا'.



تنظیمات بیشتر جستجو

  • جستجو بر اساس برچسب

    برچسب ها را با , از یکدیگر جدا نمایید.
  • جستجو بر اساس نویسنده

نوع محتوا


وبلاگ‌ها

چیزی برای نمایش وجود ندارد

چیزی برای نمایش وجود ندارد

تالارهای گفتگو

  • انجمن‌های آی او استریم
    • اخبار و اعلامیه‌های سایت
    • اسناد و قوانین مرجع
    • رویداد‌ها و جلسات
    • معرفی محصولات نوشته شده‌ بومی
    • مرکز نظرسنجی جامعه‌ی برنامه‌نویسان
    • مقالات و اسناد مشاوره‌ای
    • مرکز چالش برانگیز برنامه‌نویسان
    • رمز‌های موفقیت
    • ابزار‌ها و نرم‌افزارهای کاربردی برنامه‌نویسان حرفه‌ای
  • استارتاپی و کسب‌و‌کار
    • استارتاپ‌ها
    • سرمایه گذاری
    • شتاب دهنده‌ها
    • پارک‌های علم و فناوری و مراکز رشد
    • مصاحبه با استارت‌آپ‌ها
    • قوانین حقوقی
    • داستان‌های موفقیت
    • کارآفرینان و متخصصین
    • مشاوره اجرای کسب‌وکار
    • اخبار حوزه‌ی استارتا‌پی
    • آگهی‌های استخدامی
  • زبان‌های برنامه نویسی
    • برنامه نویسی در C و ‏++C
    • برنامه نویسی با Java
    • برنامه نویسی با JavaScript
    • برنامه نویسی با Go
    • برنامه نویسی با Python
    • برنامه نویسی با Delphi
    • برنامه نویسی با Ruby
    • برنامه نویسی با VB6
  • طراحی و توسعه وب
    • برنامه نویسی در PHP
    • برنامه نویسی با Node.JS
    • برنامه نویسی با Django
  • طراحی و توسعه وب اپلیکیشن‌ها
    • طراحی و توسعه در Angular
    • طراحی و توسعه در React.JS
    • طراحی و توسعه در Vue.JS
  • طراحی و توسعه موبایل و اِمبِد‌ها و تلوزیون‌ها
    • برنامه نویسی تحت محصولات اپل
    • برنامه نویسی تحت محصولات گوگل
    • طراحی و توسعه تحت محصولات دیگر
  • برنامه‌نویسی سطح پایین و سیستم عامل‌ها
    • سیستم عامل‌های آزاد
    • سیستم عامل‌های تجاری
    • مباحث آموزشی مرتبط با سیستم‌عامل
  • شبکه و اینترنت
  • بانک‌های اطلاعاتی
  • برنامه نویسی تحت محصولات اپل
  • برنامه نویسی تحت محصولات مایکروسافت
  • طراحی و توسعه تجربه کاربری (UX) و رابط کاربری (UI)
  • درخواست انجام پروژه (ویژه)
  • سوالات و مباحث عامیانه
  • سطل آشغال

Product Groups

  • کتاب‌ها و مقالات آموزشی

دسته ها

  • علمی
  • استارتاپی
  • برنامه‌نویسی
    • زبان‌های برنامه نویسی
    • معماری‌ها
  • کامپایلر و مفسر
  • محیط‌های توسعه
  • طراحی و توسعه‌ی وب
  • مجوز‌های نرم‌افزاری
  • فناوری‌ها
    • پردازش تصویر
    • اینترنت اشیاء
    • پردازش ابری (Cloud Computing)
    • چند سکویی (Cross-Platform)
    • بیگ دیتا (Big Data)
    • هوش مصنوعی (AI)
    • سخت افزار
    • نرم‌افزار و اپلیکیشن
    • اینترنت و شبکه
    • رمزنگاری
    • امبد‌ها (Embedded)
  • طراحی
    • تجربه کاربری
    • رابط کاربری

دسته ها

  • عمومی
  • گرافیکی
  • شبکه و ارتباطات

دسته ها

  • کامپایلر‌ها
  • محیط‌های توسعه
  • کتابخانه‌ها
  • ماژول‌ها و پلاگین‌ها
  • محصولات بومی
  • کتاب‌ها و مقالات
  • زبان‌ها و ابزار‌ها
  • طراحی و گرافیک

جستجو در ...

نمایش نتایجی که شامل ...


تاریخ ایجاد

  • شروع

    پایان


آخرین بروزرسانی

  • شروع

    پایان


فیلتر بر اساس تعداد ...

تاریخ عضویت

  • شروع

    پایان


گروه


درباره من


شماره تلفن همراه


شناسه گیت‌هاب


شناسه لینکدین


شناسه پیام رسان


شهر


آدرس پستی

1 نتیجه پیدا شد

  1. علی رضا نیگ پی

    در این قسمت میخوایم تلاش کنیم کودا (cuda) رو بر روی اوبونتو (Ubuntu) نصب کنیم نسخه کودا که نصب کردم ۱۰.۰ هست و همچنین اوبونتو ۱۸.۰۴ ولی بعید میدونم فرق خاصی داشته باشه نصب بقیه ورژن های چه کودا چه اوبونتو. اول از همه به قسمت Software & Updates برید و پنجره Additional Drivers رو انتخاب کنید و کارت گرافیک خودتون رو نصب کنید بعد از اینکه نصب شد سیستم رو ریبوت کنید یا در ترمینال خط زیر و بزنید: sudo reboot در مرحله بعد باید ملزومات کودا رو نصب کنید و از اونجایی که وقتی فایل deb رو نصب کنید این وابستگی ها خودشون نصب می‌شن ماهم دستی خودمون نصب می‌کنیم چون از deb استفاده نمی‌کنیم! پس: sudo apt-get install freeglut3 freeglut3-dev libxi-dev libxmu-dev این خط پکیج های لازم رو برای کتابخانه های GL - GLU - Xi - Xmu و چندین تای دیگه رو میگیره که بعدا به عنوان وابستگی نصب میشن. حالا به سایت Cuda Zone و دانلود رو بزنید بعدش تو صفحه باز شده Architecture و Distribution و Version روخودتون بر اساس لینوکسی که دارید پیش ببرید و برای دریافت اطلاعات در اوبونتو میتونید از lsb_release -a استفاده کنید. در قسمت نوع نصاب‌ (installer type) گزینه runfile (local) رو انتخاب کنید و دوتا فایل رو که یکی در حد چندین مگابایت و دیگری چیزی در حدود ۲ گیگابایت هست رو دانلود کنید. حالا نوبت نصب cuda-toolkit و نمونه ها (samples): sudo sh cuda_10.0.130_410.48_linux.run اینو که زدید بعدش سوالاتی مثل سوالات زیر پرسیده میشه ازتون و دقت کنید مثل نه دقیقا برای همین سوالات و بخونید و ببینید کدوم پرسیده میشه و کدوم پرسیده نمیشه البته اگر کودا ۱۰ نصب می‌کنید دقیقا همین سوالا پرسیده میشه یا اینکه خود شرکت عوض کرده خلاصه دقت کنید تا در زندگی پیشرفت کنید!! Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 396.26? (y)es/(n)o/(q)uit: n Install the CUDA 10.0 Toolkit? (y)es/(n)o/(q)uit: y Enter Toolkit Location [ default is /usr/local/cuda-10.0 ]: Do you want to install a symbolic link at /usr/local/cuda? (y)es/(n)o/(q)uit: y Install the CUDA 10.0 Samples? (y)es/(n)o/(q)uit: y Enter CUDA Samples Location [ default is /home/kinghorn ]: /usr/local/cuda-10.0 برای بعضی ها شاید سوال: You are attempting to install on an unsupported configuration. Do you wish to continue? (y)es/(n)o [ default is no ]: y هم پرسیده بشه که جوابش و y بدید که بگذرید. سوال اول داره اجازه میگیره که درایور کارت گرافیک رو نصب کنه: از اونجایی که بالا ما نصبش کردیم حتما حتما حتما بزنید n و تقریبا مهمترین قسمت این نصب هم همینه که اینو بزنید n. سوال دوم داره اجازه نسخه کودا تولکیت (cuda toolkit) رو ازتون میگیره که این برمیگرده به نسخه ای که دانلود کردید و برای مثلا من نسخه ۱۰.۰ بود. سوال سوم مکان رو ازتون میخواد که شما همون پیش فرض رو بذارید یعنی دکمه Enter رو بزنید تا برسید به سوال چهارم. سوال چهارم هم اجازه برای نصب symbolic در مکانی که در سوال بالا بهش دادید و سوال پنجم هم نصب نمونه هاست و مکانش رو در سوال ششم بصورتی که نوشتم با این تفاوت که بجای فایل کودا فایل کودا نسخه خودتون و قرار بدید. Enter CUDA Samples Location [ default is /home/kinghorn ]: /usr/local/cuda-x.x بحای x.x نسخه خودتون رو بنویسید. بعضی اوقات خطاهایی بدلیل کارت گرافیک و اینا میاد که خودش چند خط بعد نوشته جلو کلمه try چه چیزی بزنید و اگر اون ارور هارو دریافت کردید اون خط رو بزنید و ان شالله نصب میشه بعد از این کارا اون فایل چند مگابایتی رو حالا اجرا کنید sudo sh cuda_10.0.130.1_linux.run اسمش هم دیگه به چیزی که دارید نصب میکنید بستگی داره و خلاصش اینه که فایلی که اسم کوتاه داره همون چند مگابایتیه هست و اون فایل که اسم بلندی داره ۲ گیگابایتیه هستش. حالا نوبت مقدار دهی Environment Variables: در اینجا مقدار Environment هارو با این فرض مقدار دهی میکنیم که چندین کاربر (user) داریم. البته سیستم خود من تک کاربره هست ولی همچنان با این متد رفتم شما هم میتونید برید و مشکلی نداره sudo nano /etc/profile.d/cuda.sh با این خط به فایل در مسیر داده شده به اسم cuda.sh می‌سازیم و بعد از اون با دستور nano باز میکنیم و متن رو داخلش قرار میدیم: export PATH=$PATH:/usr/local/cuda/bin export CUDADIR=/usr/local/cuda بعد از اون فایل رو ذخیره می‌کنیم یعنی کلید ها Ctrl + x سپس ‌y و بعد از اون Enter رو میزنیم و ذخیره میشه فایل بعد از این خط زیر و اجرا میکنیم تا فایل مورد نظر باز بشه sudo nano /etc/ld.so.conf.d/cuda.conf حالا خط زیر و انتقال میدیم داخلش و بعد همون دکمه های قبلی رو میزنیم تا فایل ذخیره بشه /usr/local/cuda/lib64 بعد از این کار دستور زیر و اجرا میکنیم و بعد از دستور زیر یه بار log out می‌کنیم تا محتویات اجرا شن و بعدش دیگه دسترسی دارید از شل (shell) برای استفاده از دستور ها رو دارید sudo ldconfig حالا اگر این و انجام دادید که خوشا به سعادتتون و خسته نباشید اگرم منتظرید که تک کاربرشو بگم بفرما: یه فایل بنام cudax.x-env می‌سازید که اون x.x ورژن کودا شماست مثلا sudo nano cuda10.0-env بعدشم سه خط و زیر و بهش اضافه می‌کنیم و با همون دکمه های قبلی ذخیرش می‌کنیم export PATH=$PATH:/usr/local/cuda-10.0/bin export CUDADIR=/usr/local/cuda-10.0 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.0/lib64 تو این سه خط میبینید نسخه کودا هم اضاف کردم در صورتی که میتونستم فقط کودا رو بنویسیم ولی اینطوری شما میتونید چندین ورژن کودا نصب کنید و هرکدوم Environment Variables خودشو داشته باشه و حالا هر وقت خواستید به سادگی با دستور source cuda-10.0-env حالا با دستور مقدار Environmentها رو قرار میدیم یا به قول معروف set می‌کنیم. البته همچنین فایل رو میتونید هرجایی که خواستید بذارید ولی یادتون باشه که مسیرش رو اگر تغییر دادید موقع زدن خط بالا ادرس رو به source بدید. تموم! به همین راحتی کودا رو نصب کردید ( البته امیدوارم! ) با دستور nvcc --version ورژن کودا نصب شده بهتون نمایش داده می‌شه و با دستور nvidia-smi هم اطلاعات کارت گرافیتون. حالا میخوام یه نمونه کد تست کنیم که جمع دو ماتریس هست: اول با ترمینال و بعدش با vscode انجام میدیم, در ترمینال یه فایل می‌سازیم با پسوند .cu یعنیsudo nano firstcuda.cu و بعدش وقتی باز شد خطوط پایین رو داخلش قرار میدیم #include "cuda_runtime.h" #include "device_launch_parameters.h" #include <stdio.h> __global__ void addKernel(int *c, const int *a, const int *b){ int i = threadIdx.x; c[i] = a[i] + b[i]; } int main(){ const int arraySize = 5; const int a[arraySize] = { 1, 2, 3, 4, 5 }; const int b[arraySize] = { 10, 20, 30, 40, 50 }; int c[arraySize] = { 0 }; cudaError_t cudaStatus; int *dev_a = 0, *dev_b = 0, *dev_c = 0; cudaMalloc((void**)&dev_c, arraySize * sizeof(int)); cudaMalloc((void**)&dev_a, arraySize * sizeof(int)); cudaMalloc((void**)&dev_b, arraySize * sizeof(int)); cudaMemcpy(dev_a, a, arraySize * sizeof(int), cudaMemcpyHostToDevice); cudaMemcpy(dev_b, b, arraySize * sizeof(int), cudaMemcpyHostToDevice); addKernel << <1, arraySize >> >(dev_c, dev_a, dev_b); cudaDeviceSynchronize(); cudaMemcpy(c, dev_c, arraySize * sizeof(int), cudaMemcpyDeviceToHost); printf("{1,2,3,4,5} + {10,20,30,40,50} = {%d,%d,%d,%d,%d}\n", c[0], c[1], c[2], c[3], c[4]); cudaStatus = cudaGetLastError();if (cudaStatus != cudaSuccess)printf("cudaDeviceReset failed!"); return 0; } بعد ذخیره کنید و دستور nvcc firstcuda.cu -o firstcuda رو بزنید. این دستور یعنی با کامپیالر nvcc برنامه firstcuda.cu رو کامپایل کن و خروجی -o بنام firstcuda بده. که خروجی در همون پوشه هست که هموطوری که میدونید بطور پیش فرض همه این ها در قسمت home هستند. حالا خروجی رو اجرا کنید یعنی ./firstcuda و این دستور خروجی رو اجرا میکنه و به شما نمایش میده. خروجی که باید نمایش داده بشه {1,2,3,4,5} + {10,20,30,40,50} = {11,22,33,44,55} حالا بریم سراغ vscode که یکم بیشتر ولی رنگی تره, بقول معروف هرچی رنگین تر باشی سخت تر بدست میای! از قسمت ترمینال (Terminal) گزینه New Terminal رو انتخاب کنید و بعد بنویسید touch test.cu که با این دستور شما فایل test.cu رو میسازید.حالا کد هارو داخلش قرار بدید بعدش میتونید از داخل ترمینال داخل vscode بقیه مراحل و مثل قبل برید و کامپیال کنید و بعدشم اجرا کنید فایل خروجی رو ولی راه قشنگ تر اینه که از قسمت ترمینال گزینه Configure Default Build Task رو انتخاب کنید بعد از اون یه پنجرکی (پنجره کوچک!) باز میشه که روی Create tasks.json file from template کلیک کنید و بعدشم گزینه Others. حالا در فایل جدیدی که ساخته شده با پسوند .json باید خط های زیر رو قرار بدید { "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "nvcc", "args": [ "test.cu", "-o", "${workspaceFolderBasename}" ] } ] } خب حالا باید درستش کنیم: اولین چیز لیبل (label) هست که نشون دهنده اسم task میشه و بعد از اون نوع که باید شل (shell) باشه و مهم تر از همه command که نشون دهنده کامپیالرمون هست باید nvcc باشه تا سیستم به طور خودکار کتابخانه هایی که استفاده شده در کد رو تشخیص بده. ارگومان ها اول اسم برنامه هست و بعدی به معنای خروجی هست و سومی نام فایل خروجی که اونی که نوشته شده یعنی هم اسم فایلی که داخلشیم. بعد از سیو کردن (Ctrl + s) وقتی از قسمت ترمینال گزینه Run Task رو میزنیم build نمایش داده میشه و وقتی میزنیمش این کد کامپیایل میشه و در همون فولدر خروجی رو بهمون میده و اگرم دقت کنید یک فایل a.out هم براتون نمایش داده میشه در vscode. حالا کاری میکنیم که وقتی ساخته شد اجرا هم بشه و در ترمینال vscode نمایش داده بشه. اگر دقت کرده باشید خطی جدید به صورت "problemMatcher": [] اضافه شده برای همین در پایین که کل کد هست این خط هارو وارد نکنید: { "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "nvcc", "args": [ "test.cu", "-o", "${workspaceFolderBasename}" ], "problemMatcher": [] }, { "label": "run", "type": "shell", "command": "./${workspaceFolderBasename}", "dependsOn": [ "build" ] } ] } این قسمت جدیدی که اضافه شده داره میگه task با نام run اجرا کنه فایل رو (که در قسمت command برابر قرار داده شده این عمل) و باید حتما build اجرا شده باشه و به نوعی مثل همون شرط کار میکنه. اگر بخوایم اسمی خاص و همچنین در فولدر بندی خاصی این عملیات انجام بشه باید آدرس هارو بهشون بدیم: یعنی اول باید به مقدار آرگومان ورودی سوم قسمت build باید آدرس رو کامل وارد کنیم و همچنین در قسمت command بخش run هم همچین کاری کنیم به زبان ساده بخوام بگم میشه: ما یه فولدر بنام Practice داریم که تو اون فولدر فایل های مختلفی داریم که یه فولدر ساختیم بنام Cuda برای پروژه های کودا و همچنین یه فولدر در Cuda ساختیم به نام اسم پروژه ( فرض کنیم test.cu) پس آدرس فایل test.cu میشه ‌Practice/Cuda/Test/test.cu حالا اگر بخوایم اینو اجرا کنیم و خروجی رو ببینیم باید فایل .json رو اینطوری بنویسیم (دقت کنید به بزرگ و کوچیک بودن کلمات!): { "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "nvcc", "args": [ "Practice/Cuda/Test/test.cu", "-o", "Practice/Cuda/Test/test" ], "problemMatcher": [] }, { "label": "run", "type": "shell", "command": "./Practice/Cuda/Test/test", "dependsOn": [ "build" ], "problemMatcher": [] } ] } الان یه فایل ورودی با اون آدرس و با پسوند .cu به کامپایلر داده میشه و بعدش فایلی با نام test که نامی دلخواه هست و هرچی خواستید میتونید بذارید ساخته میشه به عنوان خروجی و در قسمت run میاد فایل رو با آدرس دقیقا در قسمت command میگیره و اجراش میکنه (دقیقا همون کاری که در ترمینال اوبونتو میکنید اینجا اومدید دکمه ایش کردید). حالا از قسمت Run Task روی run کلیک میکنیم تا کامپیال و هم چنین اجرا بشه. فایل نهایی شما (بعد از اجرا کردن) باید تقریبا به شکل زیر باشه (تقریبا برای این میگم شاید فردی بخواد وابستگی هارو بیشتر کنه و یا اسم برنامه چیز دیگه ای باشه و ...‌) { "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "nvcc", "args": [ "test.cu", "-o", "${workspaceFolderBasename}" ], "problemMatcher": [] }, { "label": "run", "type": "shell", "command": "./${workspaceFolderBasename}", "dependsOn": [ "build" ], "problemMatcher": [] } ] } خروجی زیبا رو در ترمینال میتونید تماشا کنید و لذت ببریدخسته نباشید ان شالله همیشه پیروز و موفق باشید :] منبع اصلی هم مقاله Dr Donald Kinghorn و همچنین چندین (خیلی زیاد) ویدیو و مقاله و پاسخ جواب های دیگه تا تونستم بالاخره نصب کنم و بدون مشکل استفاده کنم.
×
×
  • جدید...