Lyrics:Corrinne May Music:Corrinne May
It's a long long journey (這是一段很長很長的旅程)
Till I know where I'm supposed to be (直到我找到我的容身之處)
It's a long long journey (這是一段很長很長的旅程)
And I don't know if I can believe (而我不知道是否能相信)
When shadows fall and block my eyes (當陰影落下阻擋了我的視線)
I am lost and know that I must hide (我失敗了並且明白我必須躲藏)
It's a long long journey (這是一段很長很長的旅程)
Till I find my way home to you (直到我找到回家的路 走向你)
Many days I've spent (我曾用盡了許多日子)
Drifting on through empty shores (來回漂流在無人的岸邊)
Wondering what's my purpose (疑惑著我的目的是什麼)
Wondering how to make me strong (疑惑著如何使自己更堅強)
I know I will falter I know I will cry (我知道我將會變的脆弱 我將會哭泣)
I know you'll be standing by my side (我知道你將會站在我的身邊)
It's a long long journey (這是一段很長很長的旅程)
And I need to be close to you (而我需要更向你靠近)
Sometimes it feels no one understands (有時候這種感覺沒有人能了解)
I don't even know why
I do the things I do (我不知道為何我做了這些事)
When pride builds me up till I can't see my soul (當驕傲像高牆般將我拱起 直到我看不到自己的靈魂)
Will you break down these walls and pull me through? (你是否會拉著我穿越過這高牆)
Cause It's a long long journey (因為這是一段很長很長的旅程)
Till I feel that I am worth the price (直到我覺得我是值得那代價的)
You paid for me on calvary (而你給了我基督受難像)
Beneath those stormy skies (在這暴雨狂風的天空下)
When Satan mocks and friends turn to foes (當魔鬼嘲弄著我 朋友一個個變成敵人)
It feel like everything is out to make me lose control (感覺就像每件事使我失去控制)
Cause It's a long long journey (這是一段很長很長的旅程)
Till I find my way home to you. to you (直到我找到回家的路 走向你 走向你)
2010年12月31日 星期五
2010年12月22日 星期三
int to string
1. 用C 語言可以用sprintf 來達成
sprintf(str,"%d",val);
2. C++ stringstream 無論是<<或>>,都會自動轉型
string int2str(int &i)
{
string s;
stringstream ss(s);
ss << i;
return ss.str();
}
sprintf(str,"%d",val);
2. C++ stringstream 無論是<<或>>,都會自動轉型
string int2str(int &i)
{
string s;
stringstream ss(s);
ss << i;
return ss.str();
}
2010年12月14日 星期二
複雜度
O(1) < O(logN) < O(N) < O (NlogN) < O(N^2) < O(N^3) < O(2^N)
如果要計算一個演算法則的複雜度,可以使用演算法則執行時所需要的「執行時間」(Time)或是「記憶體空間」(Space)來進行評估,但是演算法則所需的「記憶體空間」而言,由於是使用虛擬記憶體的技術,提供足夠的記憶體空間,因此一般還是採用「執行時間」來當成估算演算法則複雜度的依據。
複雜度的表示
(1)複雜度上限 (BiG-O)
表示演算法則在最差的情況的複雜度
若 f(N)=O(g(N))成立時,則存在二個常數 C 與 N0 ,使得f(N) <= Cg(N),當N>=N0
(2)複雜度下限(Big Omega)
表示演算法則在最佳的情況的複雜度
若 f(N)=O(g(N))成立時,則存在二個常數 C 與 N0 ,使得f(N) >= Cg(N),當N>=N0
(3)上限與下限為等級相同 (Big Theada)
若 f(N)=O(g(N))成立時,則存在二個常數C1 , C2 與 N0 ,使得C1g(N) <=f(N) <= C2g(N),當N>=N0
2010年11月12日 星期五
RHEL6 announce
Red Hat Sets a New Standard for the Next Generation of Operating Systems (2010.11.10)
With support from industry-leading partners, Red Hat Enterprise Linux 6 enters the market; offers Enterprise IT a firm foundation for a virtualized and cloud-focused future.
期待 CentOS 6 趕快釋出
http://www.redhat.com/about/news/prarchive/2010/new-standard.html
With support from industry-leading partners, Red Hat Enterprise Linux 6 enters the market; offers Enterprise IT a firm foundation for a virtualized and cloud-focused future.
期待 CentOS 6 趕快釋出
http://www.redhat.com/about/news/prarchive/2010/new-standard.html
2010年10月29日 星期五
2010年10月27日 星期三
Cloud reference model
Cloud reference model |
[1] Security Guidance for Critical Areas of Focus in Cloud Computing V2.1 from: http://www.cloudsecurityalliance.org/
2010年10月20日 星期三
gmail aliases
Gmail doesn't offer traditional aliases, but you can receive messages sent to your.username+any.alias@gmail.com.
For example, messages sent to jane.doe+notes@gmail.com are delivered to jane.doe@gmail.com.
You can set up filters to automatically direct these messages to Trash, apply a label or star, skip the inbox, or forward to another email account.
For example, messages sent to jane.doe+notes@gmail.com are delivered to jane.doe@gmail.com.
You can set up filters to automatically direct these messages to Trash, apply a label or star, skip the inbox, or forward to another email account.
2010年10月19日 星期二
GT200 performance
Here are the peak performance numbers for various parts:
Single Precision Double Precision Bandwidth
· GTX 260-216: 805 GFlop/s 67 GFlop/s 112 GB/s
· GTX 280: 933 78 142
· GTX 285: 1062 89 159
· GTX 295: 1789 149 224
· Tesla C1060: 933 78 102
references
http://perspectives.mvdirona.com/2009/03/15/HeterogeneousComputingUsingGPGPUsNVidiaGT200.aspx
Single Precision Double Precision Bandwidth
· GTX 260-216: 805 GFlop/s 67 GFlop/s 112 GB/s
· GTX 280: 933 78 142
· GTX 285: 1062 89 159
· GTX 295: 1789 149 224
· Tesla C1060: 933 78 102
references
http://perspectives.mvdirona.com/2009/03/15/HeterogeneousComputingUsingGPGPUsNVidiaGT200.aspx
2010年10月13日 星期三
CentOS VNC server configure
#修改 /etc/sysconfig/vncserver
#修改 ~/.vnc/xstartup
tighvnc 連線時 IP:terminal:port number
terminal 設為1 表示原root terminal使用, 不設定為由2 開始
附註, Centos6 之後是預設vino 需登入後才能remote loging.
XRDP 設定
http://hpclab.cs.pu.edu.tw/wiki/index.php/Xrdp
http://pulipuli.blogspot.tw/2008/08/windowslinuxxrdpvnc-server.html
references:
http://lerax.sytes.net/LERAX/index.php?pl=593&sid=9695925f
http://blog.weithenn.org/2009/04/centosvnc-vnc-server.html
last update: 2012/07/11
#修改 ~/.vnc/xstartup
tighvnc 連線時 IP:terminal:port number
terminal 設為1 表示原root terminal使用, 不設定為由2 開始
附註, Centos6 之後是預設vino 需登入後才能remote loging.
XRDP 設定
http://hpclab.cs.pu.edu.tw/wiki/index.php/Xrdp
http://pulipuli.blogspot.tw/2008/08/windowslinuxxrdpvnc-server.html
references:
http://lerax.sytes.net/LERAX/index.php?pl=593&sid=9695925f
http://blog.weithenn.org/2009/04/centosvnc-vnc-server.html
last update: 2012/07/11
2010年10月6日 星期三
Clean linux ARP cache
一、這樣可以清除單一IP的ARP緩存
arp -d IP
二、清除192.168.0.0網段的所有暫存
for((ip=2;ip<255;ip++));do \ arp -d 192.168.0.$ip &>/dev/null; \
done
三、清除所有ARP
arp -n|awk '/^[1-9]/ {print "arp -d "$1}' | sh
Reference:
http://www.linuxzh.org/Linux/arp-clean.html
arp -d IP
二、清除192.168.0.0網段的所有暫存
for((ip=2;ip<255;ip++));do \ arp -d 192.168.0.$ip &>/dev/null; \
done
三、清除所有ARP
arp -n|awk '/^[1-9]/ {print "arp -d "$1}' | sh
Reference:
http://www.linuxzh.org/Linux/arp-clean.html
2010年10月5日 星期二
PBS Environment Variables
In addition to the above, the following environment
variables will be available to the batch job.
PBS_O_HOST
the name of the host upon which the qsub command is running.
PBS_O_QUEUE
the name of the original queue to which the job was submitted.
PBS_O_WORKDIR
the absolute path of the current working directory of the qsub command.
PBS_ENVIRONMENT
set to PBS_BATCH to indicate the job is a batch job, or
to PBS_INTERACTIVE to indicate the job is a PBS
interactive job, see -I option.
PBS_JOBID
the job identifier assigned to the job by the batch system.
PBS_JOBNAME
the job name supplied by the user.
PBS_NODEFILE
the name of the file contain the list of nodes assigned
to the job (for parallel and cluster systems).
PBS_QUEUE
the name of the queue from which the job is executed.
variables will be available to the batch job.
PBS_O_HOST
the name of the host upon which the qsub command is running.
PBS_O_QUEUE
the name of the original queue to which the job was submitted.
PBS_O_WORKDIR
the absolute path of the current working directory of the qsub command.
PBS_ENVIRONMENT
set to PBS_BATCH to indicate the job is a batch job, or
to PBS_INTERACTIVE to indicate the job is a PBS
interactive job, see -I option.
PBS_JOBID
the job identifier assigned to the job by the batch system.
PBS_JOBNAME
the job name supplied by the user.
PBS_NODEFILE
the name of the file contain the list of nodes assigned
to the job (for parallel and cluster systems).
PBS_QUEUE
the name of the queue from which the job is executed.
2010年9月30日 星期四
2010年9月23日 星期四
makefile 常用的變數
- makefile 常用的變數
$? 代表需要重建(被修改)的相依性項目。 $@ 目前的目標項目名稱。 $< 代表目前的相依性項目。 $* 代表目前的相依性項目,不過不含副檔名。
- 例:以 $@ 代表目前的目標 (target) 項目。
LIBS = -lm OBJS = main.o haha.o sin_value.o cos_value.o CFLAGS = -Wall main: ${OBJS} gcc -o $@ ${OBJS} ${LIBS} <== 在此 $@ 即 main 。 clean: rm -f main ${OBJS}
- 例:以 $@ 代表目前的目標 (target) 項目。
- makefile 中兩個特別字元,可以加在要執行的命令之前:
- - :make 會忽略命令的錯誤。
- 如果希望產生一個目錄,但希望忽略錯誤,可能是因為該目錄已經存在。
-mkdir /usr/local/repository
- 如果希望清除目標檔案,但希望忽略錯誤,可能是因為該檔案不存在。
clean: -rm main.o 2.o 3.o
- 如果希望產生一個目錄,但希望忽略錯誤,可能是因為該目錄已經存在。
- @ :make 不會在標準輸出上,顯示要執行的命令。
- 判斷式 if 起始為符號 @,讓 make 在執行該法則時,停止印出標準輸出的文字。
install: myapp @if [ -d $(INSTDIR) ]; \ then \ ...;\ fi
- - :make 會忽略命令的錯誤。
2010年9月21日 星期二
Version Control: Subversion
## require packages
yum install mod_dav_svn subversion
svnadmin create --fs-type fsfs /usr/local/svn/test
chown -R apache:apache /usr/local/svn/test
svn import Testproj http://localhost/svn/test
svn co http://localhost/svn/test
svn add xxx
svn commit xxx
# Apache subversion configure
#create password file
htpasswd -c /usr/local/svn/passwd test
yum install mod_dav_svn subversion
svnadmin create --fs-type fsfs /usr/local/svn/test
chown -R apache:apache /usr/local/svn/test
svn import Testproj http://localhost/svn/test
svn co http://localhost/svn/test
svn add xxx
svn commit xxx
# Apache subversion configure
DAV svn SVNParentPath /usr/local/svn # Limit write permission to list of valid users. # # Require SSL connection for password protection. # SSLRequireSSL AuthType Basic AuthName "Subversion Repository" AuthUserFile /usr/local/svn/passwd Require valid-user #
#create password file
htpasswd -c /usr/local/svn/passwd test
2010年8月26日 星期四
Ganglia 安裝
最新版可由 http://ganglia.sourceforge.net/ 下載。
## SERVER's require packages:
yum install apr-devel rrdtool-devel libconfuse-devel pcre-devel gd-devel php-gd
## Client's require packages:
yum install libconfuse-devel
其中 rrdtool 可由DAG 下載, 設定可參考 DAG yum repository
## 開始安裝 Ganglia
untar ganglia-3.x.x.tar.gz
GANGLIA_ACK_SYSCONFDIR=1 ./configure --prefix=/opt/ganglia --with-gmetad
make && make install
## SERVER's require packages:
yum install apr-devel rrdtool-devel libconfuse-devel pcre-devel gd-devel php-gd
## Client's require packages:
yum install libconfuse-devel
其中 rrdtool 可由DAG 下載, 設定可參考 DAG yum repository
## 開始安裝 Ganglia
untar ganglia-3.x.x.tar.gz
GANGLIA_ACK_SYSCONFDIR=1 ./configure --prefix=/opt/ganglia --with-gmetad
make && make install
vimrc 常用設定
set nu "顯示行號
set cursorline "游標整行會標註顏色 (like notepad++)
set ruler " 顯示右下角設定值
set incsearch " 在關鍵字還沒完全輸入完畢前就顯示結果
set tabstop=4 " tab 的字元數
" set expandtab " 用 space 代替 tab
references:
VIM 圖解指令
給程式設計師的Vim入門圖解說明
c9s-VIM
vimdiff
http://www.cnblogs.com/chijianqiang/archive/2012/10/31/vim-2.html
http://blog.roga.tw/2010/01/%E6%88%91%E7%9B%AE%E5%89%8D%E4%BD%BF%E7%94%A8%E7%9A%84-vimrc-%E8%A8%AD%E5%AE%9A%E6%AA%94/
http://blog.vgod.tw/2011/03/19/vimrc/
http://cle.linux.org.tw/~edt1023/vim/node10.html
set cursorline "游標整行會標註顏色 (like notepad++)
set ruler " 顯示右下角設定值
set incsearch " 在關鍵字還沒完全輸入完畢前就顯示結果
set tabstop=4 " tab 的字元數
" set expandtab " 用 space 代替 tab
references:
VIM 圖解指令
給程式設計師的Vim入門圖解說明
c9s-VIM
vimdiff
http://www.cnblogs.com/chijianqiang/archive/2012/10/31/vim-2.html
http://blog.roga.tw/2010/01/%E6%88%91%E7%9B%AE%E5%89%8D%E4%BD%BF%E7%94%A8%E7%9A%84-vimrc-%E8%A8%AD%E5%AE%9A%E6%AA%94/
http://blog.vgod.tw/2011/03/19/vimrc/
http://cle.linux.org.tw/~edt1023/vim/node10.html
2010年8月25日 星期三
C++ INT to Binary
void binary(int number) {
int remainder;
if(number <= 1) {
cout << number;
return;
}
remainder = number%2;
binary(number >> 1);
cout << remainder;
}
C++ string
若要在string 後面在連接其他字串的方法有三種, 可是效率卻不同,假設要在字串str 後面加其他字串word
#include
string str, word;
方法1:
str += word;
方法2:
str = str.append(word);
方法3:
str = str + word;
效率比較
方法1 = 方法2 > 方法3
方法3會將字串str + word複製到一個記憶體空間,再將記憶體空間內的值指派到str 內, 所以多花了一倍時間
#include
string str, word;
方法1:
str += word;
方法2:
str = str.append(word);
方法3:
str = str + word;
效率比較
方法1 = 方法2 > 方法3
方法3會將字串str + word複製到一個記憶體空間,再將記憶體空間內的值指派到str 內, 所以多花了一倍時間
2010年8月18日 星期三
InfiniBand on Redhat/Centos Linux.
## install necessary packages
yum install ibutils.x86_64 openib.noarch opensm.x86_64 infiniband-diags.x86_64
## client
yum install ibutils.x86_64 openib.noarch infiniband-diags.x86_64
## start services
service openibd start
service opensmd start
## configure interface
DEVICE=ib0
TYPE=Infiniband
BOOTPROTO=static
BROADCAST=192.168.0.255
IPADDR=192.168.0.1
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.ib0.arp_ignore=1
net.ipv4.conf.ib1.arp_ignore=1
references:
HOWTO: Getting Started with InfiniBand on Redhat/Centos Linux.
yum install ibutils.x86_64 openib.noarch opensm.x86_64 infiniband-diags.x86_64
## client
yum install ibutils.x86_64 openib.noarch infiniband-diags.x86_64
## start services
service openibd start
service opensmd start
## configure interface
DEVICE=ib0
TYPE=Infiniband
BOOTPROTO=static
BROADCAST=192.168.0.255
IPADDR=192.168.0.1
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.ib0.arp_ignore=1
net.ipv4.conf.ib1.arp_ignore=1
references:
HOWTO: Getting Started with InfiniBand on Redhat/Centos Linux.
2010年8月17日 星期二
How to suspend process
今天有人問我在Linux 下要如何將行程暫停, 這個問題我從來沒想過. 用Google 查了一下發現用kill 就行了.
kill -stop PID #suspend process
kill -cont PID #restart process
2010年8月11日 星期三
How to query dependencies from RPM file or packages
rpm -qpR {.rpm-file}
rpm -qR {package-name}
How to list packages in Ubuntu
dpkg --get-selections > packages
References:
http://www.cyberciti.biz/faq/how-do-i-find-what-dependencies-a-rpm-file-has/
http://askubuntu.com/questions/17823/how-to-list-all-installed-packages
http://askubuntu.com/questions/17823/how-to-list-all-installed-packages
2010年7月28日 星期三
2010年5月26日 星期三
安裝 GLU lib 於CentOS 5.3
於CentOS 上使用 CUDA 時常會遇到缺少 cannot find -lGLU or cannot find -lXi 和 cannot find -lXmu 的編譯錯誤.
這時只要安裝以下的函式庫就可以解決
yum install freeglut freeglut-devel libXi-devel libXmu-devel
這時只要安裝以下的函式庫就可以解決
yum install freeglut freeglut-devel libXi-devel libXmu-devel
2010年4月27日 星期二
CUDA programming under Compute-Exclusive Mode
How can I tell my programs to choose the available device automatically
It is very simple to make your program automatically choose the right device: DO NOT use cudaSetDevice().
When you don't explicitly specify to use which device, your CUDA program will first try to set up context on device0. If device0 is not available, it will try device1.
What will happen if I choose a device which is being used by another program.
Since all GPU devices have been configured as compute-exclusive mode, the second thread which tries to contact with GPU device will be denied. If you insist using this device by using cudaSetDevice() in your code, you will receive an error when running a CUDA API function.
2010年4月19日 星期一
How to Step TAB for SCREEN
#編輯 .screenrc
vi ~/.screenrc
References:
http://en.gentoo-wiki.com/wiki/Screen
http://blog.cwke.net/2008x06/screen
screen
screen 常用教學筆記
vi ~/.screenrc
caption always "%{= bK} %{= bG} [%n]%t @ %H %{-} %= %{= bR} %l %{-} | %{= bG} %Y-%m-%d %{-}" hardstatus alwayslastline " %-Lw%{= BW}%n%f %t%{-}%+Lw %=| %0c:%s " # Ctrl + left : last page # Ctrl + right : next page bindkey "^[[1;5C" next bindkey "^[O5C" next bindkey "^[[C" next bindkey "^[[1;5D" prev bindkey "^[O5D" prev bindkey "^[[D" prev
SCREEN 熱鍵
1) Ctrl+a c:建立一個新分頁
2) Ctrl+a a:分頁往返
3) Ctrl+a [1...9]:切換到第 n 分頁
4) Ctrl+a d:Detach 將工作放到背景執行
5) Ctrl+a S:分割上下畫面
6) Ctrl+a [TAB]:在分割畫面中往返
References:
http://en.gentoo-wiki.com/wiki/Screen
http://blog.cwke.net/2008x06/screen
screen
screen 常用教學筆記
2010年4月8日 星期四
strtok 應用
char* strtok(char* str, const char* delimiters)
用途:將字串切割成tokens
用法:
#include <iostream>
#include <string.h>
using namespace std;
int main()
用途:將字串切割成tokens
用法:
#include <iostream>
using namespace std;
int main()
{
char c[20] ="Hello World!"
char *s;
char c[20] ="Hello World!"
char *s;
s = strtok(c, " ");
while(s!= NULL){
cout >> s >> endl;
s = strtok(NULL, " ");
}
}
while(s!= NULL){
cout >> s >> endl;
s = strtok(NULL, " ");
}
}
2010年4月7日 星期三
解決ssh 連線登入問題
3.3 - ssh(1) takes a long time to connect or log in
Large delays (more that 10 seconds) are typically caused a problem with name resolution:
- Some versions of glibc (notably glibc 2.1 shipped with Red Hat 6.1) can take a long time to resolve "IPv6 or IPv4" addresses from domain names. This can be worked around with by specifying AddressFamily inet option in sshd_config.
- There may be a DNS lookup problem, either at the client or server. You can use the
nslookup
command to check this on both client and server by looking up the other end's name and IP address. In addition, on the server look up the name returned by the client's IP-name lookup. You can disable most of the server-side lookups by setting UseDNS no in sshd_config.
解決的方法, 修改 /etc/ssh/sshd_conf 裡面
UseDNS no
小於 3.7.1 版之前的請改
VerifyReverseMapping no
更早之前的如 2.9.9p2
ReverseMappingCheck no
* Replaced sshd(8)'s VerifyReverseMapping with UseDNS option.
When UseDNS option is on, reverse hostname lookups are always
performed.
When UseDNS option is on, reverse hostname lookups are always
performed.
2010年3月24日 星期三
UNSIGNED INT
unsigned 修飾字是用於正數變數, 在32位元
int的範圍是 -2147483648~2147483647, 加上修飾字 unsigned int, 其範圍是 0~4294967295.
補充:
http://en.wikipedia.org/wiki/Integer_(computer_science)
http://programming.im.ncnu.edu.tw/Chapter5.htm
int的範圍是 -2147483648~2147483647, 加上修飾字 unsigned int, 其範圍是 0~4294967295.
補充:
- sbyte 型別代表的是帶正負號的 8 位元整數,且介於 -128 和 127 的值。
- byte 型別代表的是不帶正負號的 8 位元整數,且介於 0 和 255 的值。
- short 型別代表的是帶正負號的 16 位元整數,且介於 -32768 和 32767 的值。
- ushort 型別代表的是不帶正負號的 16 位元整數,且介於 0 和 65535 的值。
- int 型別代表的是帶正負號的 32 位元整數,且介於 -2147483648 和 2147483647 的值。
- uint 型別代表的是不帶正負號的 32 位元整數,且介於 0 和 4294967295 的值。
- long 型別代表的是帶正負號的 64 位元整數,且介於 –9223372036854775808 和 9223372036854775807 的值。
- ulong 型別代表的是不帶正負號的 64 位元整數,且介於 0 和 18446744073709551615 的值。
- char 型別代表的是不帶正負號的 16 位元整數,且介於 0 和 65535 的值。
http://en.wikipedia.org/wiki/Integer_(computer_science)
http://programming.im.ncnu.edu.tw/Chapter5.htm
2010年3月9日 星期二
如何在 opensuse 上安裝套件
因為不常用OpenSuse 常常忘掉安裝套件的指令, 所以把指令寫起來以免日後找不到~~
#搜查資料庫
zypper search gcc
#安裝gcc
zypper install gcc33 gcc33-c++
#搜查資料庫
zypper search gcc
#安裝gcc
zypper install gcc33 gcc33-c++
2010年1月19日 星期二
[caution] nvcc compile
之前為了測試 cudpp 安裝gcc-3.3, 所以系統上有二套gcc (gcc-3.3 and gcc-4.3), 為了方便測試所以把gcc and g++ link 到 gcc-3.3. 然而之後再寫cuda 程式時發現程式一直有問題, 一直找不到原因, 後來猜想也許是gcc 的問題所以把link 改回gcc-4.3, 程式再執行就正常了. 我在想也許和當時安裝driver 有關
cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 190.29 Mon Aug 24 18:10:29 PDT 2009
GCC version: gcc version 4.3.2 [gcc-4_3-branch revision 141291] (SUSE Linux)
2010年1月15日 星期五
nvcc compiler-bindir
有時侯在使用CUDA with GCC 會遇見GCC 版本的問題, 例如 CUDPP v1.1 在gcc-4.3 上使用會有問題, 目前的做法就是downgrade gcc 版本, 另一種作法是同時安裝gcc-3.3 and gcc-4.3 然後用nvcc 編譯時加上--compiler-bindir, 作法如下
1. 做個gcc 的連結
ln -s /usr/bin/gcc-3.3 ~/gcc33/gcc
ln -s /usr/bin/g++-3.3 ~/gcc33/g++
2. 用nvcc 做編譯時加上--compiler-bindir
nvcc -DUNIX -O3 -c --use_fast_math -arch sm_13 --compiler-bindir ~/gcc33
1. 做個gcc 的連結
ln -s /usr/bin/gcc-3.3 ~/gcc33/gcc
ln -s /usr/bin/g++-3.3 ~/gcc33/g++
2. 用nvcc 做編譯時加上--compiler-bindir
nvcc -DUNIX -O3 -c --use_fast_math -arch sm_13 --compiler-bindir ~/gcc33
訂閱:
文章 (Atom)