تمام سوالات سوالات بدون پاسخ سوال بپرسید
1

دوست عزیز منظورتون از این سوال رو درست متوجه نشدم. شما می خواهید از Gpu برای محاسبات گرافیکی استفاده کنید یا از اون برای کمک به Cpu استفاده کنید؟

(06 مارس '12, 23:19) mostafa

خیلی ممنون از راهنماییتون واسه کمک کردن به cpu مد نظرمه

(07 مارس '12, 01:44) sorush
3

سلام دوست عزیز... یه پیشنهاد دوستانه...فکر می کنم اگر این عبارات و جملات رو در قالب کامنت بنویسید به حفظ قالب و ظاهر سایت خیلی کمک می کنه و دوستان راحتتر می توانند پاسخ های سوال را بررسی کنند.بازم از سوال خوبتون ممنون.

(07 مارس '12, 08:25) hamedkh ♦

سلام دوست خوب mostafa برای انجام محاسبات گرافیکی همونطور که واقفید خود کارت گرافیک براتون انجام میده نیازی به این نیست که ما بخواهیم استفاده کنیم .

(07 مارس '12, 08:49) Genius
2 پاسخ

سلام اگر حوصله خوندن مقاله اصلی رو داشته باشید میتونید از اینجا کمک بگیرید.

به طور خلاصه ابتدا باید از اینجا ببینید که کارت گرافیک شما قادر به استفاده از این امکان هست یا خیر . بعد از اون Plug-in مربوط به شرکت nVidia رو نصب کنید. لازم به ذکره که فقط شرکت nVidia از این امکان استفاده کرده که به اون CUDA میگن.
از اینجا هم بهتر میتونید کمک بگیرید. به طور مثال نمونه کدی که نوشته شده:

    texture<float, 2, cudaReadModeElementType> tex;

void foo()
{
  cudaArray* cu_array;

  // Allocate array
  cudaChannelFormatDesc description = cudaCreateChannelDesc<float>();
  cudaMallocArray(&cu_array, &description, width, height);

  // Copy image data to array
  cudaMemcpyToArray(cu_array, image, width*height*sizeof(float), cudaMemcpyHostToDevice);

  // Set texture parameters (default)
  tex.addressMode[0] = cudaAddressModeClamp;
  tex.addressMode[1] = cudaAddressModeClamp;
  tex.filterMode = cudaFilterModePoint;
  tex.normalized = false; // do not normalize coordinates

  // Bind the array to the texture
  cudaBindTextureToArray(tex, cu_array);

  // Run kernel
  dim3 blockDim(16, 16, 1);
  dim3 gridDim((width + blockDim.x - 1)/ blockDim.x, (height + blockDim.y - 1) / blockDim.y, 1);
  kernel<<< gridDim, blockDim, 0 >>>(d_data, height, width);

  // Unbind the array from the texture
  cudaUnbindTexture(tex);
} //end foo()

__global__ void kernel(float* odata, int height, int width)
{
   unsigned int x = blockIdx.x*blockDim.x + threadIdx.x;
   unsigned int y = blockIdx.y*blockDim.y + threadIdx.y;
   if (x < width && y < height) {
      float c = tex2D(tex, x, y);
      odata[y*width+x] = c;
   }
}

موفق باشید.

2

دوستان Genius یک کتاب هم در مورد CUDA معرفی کردند. از ایشان تشکر می کنم.

(07 مارس '12, 16:15) bee

تا جایی که من می دونم موضوعی تحت عنوان ‍GPGPU مطرح است که به استفاده از GPU برای محاسبات غیر گرافیکی می پردازد. اما از آن جایی که پردازش هایی که GPU انجام می دهد از نوع خاصی است، استفاده از آن برای برنامه های معمولی مناسب نیست.
محاسباتی که دارای تعداد زیادی داده که عملیاتی که روی هر کدام از آنها باید انجام شود، مشخص باشد و مخصوصاْ شما نیاز به محاسبات ریاضی زیاد و تکراری داشته باشید تا دسترسی به حافظه، برای اجرا روی GPU مناسب خواهد بود. نوع این محاسبات را می توانید تحت عنوان پردازش Stream پیگیری کنید.
معمولاْ پردازش هایی همانند پیش بینی آب و هوا، رمزنگاری و شکستن رمزها، پردازش صدا و تصویر، محسبات هوا و فضا، شبکه های عصبی، آنتی ویروس ها و تشخیص حمله ها (Intrusion Detection) و برنامه های این چنینی قابلیت اجرا روی GPU را دارند.
برای انجام این محاسبات روش های مختلفی ارائه شده است. از جمله روش هایی که یک تولید کننده خاص همانند nVidia همانند آنچه آقای Genius معرفی کرده اند که احتمالاْ از قدرت بیشتری نسبت به روش هایی که روی همه GPU ها اجرا می شود، برخوردار خواهد بود. روش های عمومی هم وجود دارند که روی GPU های بیشتری اجرا می شوند. از جمله Microsoft Direct Compute که می تواند روی Vista و Windows 7 هم اجرا شود. برای یادگیری بیشتر Direct Compute می توانید فیلم های زیادی را در این آدرس ببیند و از جمله این فیلم که یک معرفی سریع در مورد این محصول ارائه کرده است.
امیدوارم همکدی فیلم هایی هم در این زمینه قرار دهد تا بتوانیم استفاده بیشتری کنیم.
موفق باشید.

1

عالی بود ، ادامه بدید لطفاً

(18 آوریل '12, 10:05) V_B

فیلمی که شما پیشنهاد کردید زیر توسط تیم همکدی زیرنویس شد...لینکش رو برای علاقمندان میذارم.
http://www.hamcodi.ir/article/251

(10 ژوئن '12, 00:12) hamedkh ♦
toggle preview



آموزش زبان برنامه نویسی C#
آموزش jquery
آموزش برنامه نویسی
آموزش طراحی وبسایت
آموزش مدیریت وبسایت
آموزش جاوا Java
آموزش پایتون Python
آموزش سی شارپ C#‎
آموزش HTML و CSS
آموزش JavaScript جاوااسکریپت
آموزش jQuery جی کوئری
آموزش ساخت ربات تلگرام
آموزش برنامه‌نویسی PHP
آموزش برنامه‌نویسی اندروید
● آموزش‌های رایگان

سوالات مرتبط

راهنمای استفاده از ویرایشگر
  • *ایتالیک*‌ یا __ایتالیک__
  • **ضخیم** یا __ضخیم__
  • آدرس:[متن](http://url.com/ "عنوان")
  • عکس?![alt متن](/path/img.jpg "عنوان")
  • لیست عددی: 1. Foo 2. Bar
  • برای رفتن به خط بعد، هر جا مایلید که خط جدید شروع شود دو کاراکتر فاصله (space) قرار دهید
  • تگ‌های ساده HTML هم پشتیبانی می‌شوند

تگها:
  • ×34
  • ×32
  • پرسیده شده: 05 مارس '12, 00:02
  • بازدید: 2,678 بار
  • آخرین بروزرسانی: 15 ژوئن '12, 23:48

این سوال را دنبال کنیدتوسط ایمیل: ایمیل شما (باید معتبر باشد, هرگز به دیگران نمایش داده نمیشود):

هنگامی که شما به سیستم وارد شوید،قادر خواهید بود برای بروز رسانی ها مشترک شوید.


توسط RSS:

پاسخها

پاسخها و نظرها