FFTW-WISDOM(1) fftw FFTW-WISDOM(1)

fftwl-wisdom - ایجاد wisdom (تبدیل‌های فوریه از پیش بهینه‌سازی‌شده)

fftwl-wisdom [OPTION]... [SIZE]...

ابزار fftwl-wisdom برای تولید فایل‌های wisdom در FFTW به کار می‌رود؛ این فایل‌ها حاوی اطلاعات ذخیره‌شده‌ای درباره نحوه محاسبه بهینه تبدیل‌های (فوریه) در اندازه‌های مختلف هستند. FFTW یک کتابخانه آزاد برای محاسبه تبدیلات فوریه گسسته در یک یا چند بعد، برای اندازه‌های دلخواه، و بر روی هر دو داده‌های حقیقی و مختلط، در کنار سایر عملیات مرتبط است. اطلاعات بیشتر درباره FFTW را می‌توان در وبگاه FFTW یافت: http://www.fftw.org

برنامه‌هایی که از FFTW استفاده می‌کنند می‌توانند طوری نوشته شوند که wisdom را از یک فایل، رشته یا منبع دلخواه دیگر بارگذاری نمایند. افزون بر این، این احتمال وجود دارد که بسیاری از برنامه‌های مبتنی بر FFTW، فایل system wisdom را بارگذاری کنند که به طور پیش‌فرض در /etc/fftw/wisdoml ذخیره می‌شود. از fftwl-wisdom می‌توان برای ایجاد یا افزودن داده به چنین فایل‌های wisdom استفاده کرد. در متداول‌ترین حالت کاربرد، فایل wisdom می‌تواند برای برنامه‌ریزی اولیه مجموعه‌ای متعارف از اندازه‌ها (پایین را ببینید) از طریق دستور زیر ایجاد شود:


fftwl-wisdom -v -c -o wisdoml


(این فرایند ساعت‌ها زمان خواهد برد، که می‌تواند با گزینه -t محدود شود) و سپس فایل خروجی wisdoml را می‌توان (به‌عنوان کاربر ریشه) در /etc/fftw/ یا هر مسیر دیگری کپی کرد.

برنامه fftwl-wisdom به طور معمول wisdom را مستقیماً در خروجی استاندارد می‌نویسد، اما این رفتار را می‌توان از طریق گزینه -o تغییر داد، همان‌گونه که در مثال بالا نشان داده شده است.

اگر فایل wisdom سیستم /etc/fftw/wisdoml از قبل موجود باشد، آنگاه fftwl-wisdom این wisdom موجود را می‌خواند (مگر اینکه گزینه -n مشخص شده باشد) و هم wisdom قدیمی و هم هر wisdom جدید تولید شده را در خروجی می‌نویسد. به این ترتیب، می‌توان از آن برای افزودن اندازه‌های تبدیل جدید به wisdom موجود سیستم (یا فایل wisdom دیگر، با استفاده از گزینه -w ) استفاده نمود.

اگرچه مجموعه‌ای متعارف از اندازه‌ها برای بهینه‌سازی توسط گزینه -c تعیین می‌شود، اما کاربر همچنین می‌تواند صفر یا چند اندازه و نوع تبدیل غیرمتعارف را برای بهینه‌سازی، از طریق آرگومان‌های SIZE پس از پرچم‌های گزینه‌ها مشخص کند. متناوباً، در صورتی که آرگومان SIZE برابر با "-" داده شود، اندازه‌ها جهت بهینه‌سازی می‌توانند از ورودی استاندارد (جداشده با نویسه‌های فاصله) خوانده شوند.

اندازه‌ها با نحو زیر مشخص می‌شوند:


<type><inplace><direction><geometry>


<type> یکی از موارد ´c´ (مختلط)، ´r´ (حقیقی، r2c/c2r)، یا ´k´ (تبدیل r2r، انواع بر حسب بعد، که در geometry در ادامه مشخص می‌شود) است.

<inplace> یا ´i´ (درجا) است یا ´o´ (خارج از جا).

<direction> یا ´f´ (مستقیم) است یا ´b´ (معکوس). مقدار <direction> باید برای تبدیلات ´k´ حذف شود، چرا که در عوض از طریق geometry تعیین می‌گردد.

<geometry> اندازه و ابعاد تبدیل است، که در آن ابعاد مختلف با ´x´ از هم جدا می‌شوند (برای مثال ´16x32´ برای یک تبدیل دوبعدی ۱۶ در ۳۲). در مورد تبدیلات ´k´، اندازه هر بعد با یک رشته "type" دنبال می‌شود، که می‌تواند به ترتیب یکی از مقادیر f/b/h/e00/e01/e10/e11/o00/o01/o10/o11 برای R2HC/HC2R/DHT/REDFT00/.../RODFT11 باشد، همان‌گونه که در راهنمای FFTW تعریف شده است.

برای مثال، ´cif12x13x14´ یک DFT مختلط سه‌بعدی ۱۲ در ۱۳ در ۱۴ است که به صورت درجا عمل می‌کند. ´rob65536´ یک تبدیل یک‌بعدی خارج از جا با اندازه ۶۵۵۳۶ از مختلط به حقیقی (معکوس) است که بر روی ورودی با تقارن هرمیتی عمل می‌کند. ´ki10hx20e01´ یک تبدیل دوبعدی ۱۰ در ۲۰ از نوع r2r است که بعد نخست آن یک DHT و بعد دوم آن یک REDFT01 (DCT-III) می‌باشد.

نمایش راهنما درباره گزینه‌های خط فرمان و نحوه استفاده.
چاپ شماره نسخه و اطلاعات کپی‌رایت.
خروجی پرگو. (می‌توانید این گزینه را چندین بار مشخص کنید یا یک آرگومان عددی بزرگ‌تر از ۱ تعیین نمایید تا سطح پرگویی افزایش یابد.) توجه داشته باشید که خروجی پرگو با خروجی wisdom مخلوط خواهد شد (و وارد کردن آن را ناممکن می‌سازد)، مگر اینکه خروجی wisdom را با استفاده از گزینه -o در یک فایل بنویسید.
بهینه‌سازی/برنامه‌ریزی اولیه مجموعه‌ای متعارف از اندازه‌ها: تمام توان‌های دو و ده تا 2^20 (1048576)، شامل هر دو تبدیل حقیقی و مختلط، مستقیم و معکوس، درجا و خارج از جا. همچنین شامل تبدیلات دو و سه‌بعدی با ابعاد مساوی (مانند 16x16x16) نیز می‌شود.
پس از سپری شدن زمان hours (بر حسب ساعت)، کار را متوقف کرده و wisdom انباشته‌شده را خروجی می‌دهد. (مسائل به ترتیب صعودی اندازه برنامه‌ریزی می‌شوند.) پیش‌فرض 0 است که نشان‌دهنده عدم وجود محدودیت زمانی است.
ارسال خروجی wisdom به file به جای خروجی استاندارد (پیش‌فرض).
به طور معمول، fftwl-wisdom طرح‌ها را در حالت FFTW_PATIENT ایجاد می‌کند، اما با این گزینه‌ها می‌توانید به ترتیب از حالت‌های FFTW_MEASURE، FFTW_ESTIMATE یا FFTW_EXHAUSTIVE استفاده کنید، همان‌طور که در راهنمای FFTW با جزئیات بیشتر شرح داده شده است.

توجه داشته باشید که wisdom با سطح صبر در برنامه‌ریزی برچسب‌گذاری می‌شود، و یک فایل واحد می‌تواند سطوح مختلفی از wisdom را در خود داشته باشد (برای مثال، می‌توانید در بیشتر موارد از پیش‌فرض صبورانه استفاده کنید، اما چند اندازه که اهمیت ویژه‌ای برایتان دارند را در حالت --exhaustive برنامه‌ریزی نمایید).

عدم وارد کردن wisdom سیستم از /etc/fftw/wisdoml (که معمولاً به طور پیش‌فرض خوانده می‌شود).
وارد کردن wisdom از file (علاوه بر wisdom سیستم، مگر اینکه -n مشخص شده باشد). چند فایل wisdom را می‌توان از طریق چندین گزینه -w خواند. اگر file برابر با "-" باشد، wisdom از ورودی استاندارد خوانده می‌شود.
برنامه‌ریزی با N ریسه. این گزینه تنها در صورتی موجود است که FFTW با پشتیبانی از ریسه‌ها (threads) پیکربندی شده باشد.

گزارش‌های باگ را به fftw@fftw.org ارسال کنید.

نوشته‌شده توسط Steven G. Johnson و Matteo Frigo.

Copyright (c) 2003, 2007-14 Matteo Frigo
Copyright (c) 2003, 2007-14 Massachusetts Institute of Technology

fftw-wisdom-to-conf(1)

February, 2003 fftw