Koneiden nousu: tekoälyn todelliset sovellukset
Tekoäly ei ole tulevaisuudessa, se tässä nykyisyydessä Tässä blogissa Lue kuinka tekoälysovellukset ovat vaikuttaneet eri sektoreihin.
LLVM on avoimen lähdekoodin kääntäjäinfrastruktuuri. LLVM aloitettiin vuonna 2000, ja Apple on käyttänyt ja muokannut sitä laajasti vuodesta 2005. Clang on C-, C++-, Objective-C- ja Objective-C++-kääntäjä, joka toimii LLVM-järjestelmän kanssa. Apple aloitti Clangin vuonna 2007, ja siitä lähtien Google ja Intel ovat osallistuneet sen jatkuvaan kehittämiseen.
Clangin kehittäjät väittävät, että GCC:hen verrattuna se kääntää nopeammin, käyttää vähemmän muistia, antaa käyttäjäystävällisemmän diagnostiikan kääntämisen aikana ja on yhteensopiva GCC:n kanssa.
CentOS seuraa Red Hat Enterprise Linuxin (RHEL) kehitystä. RHEL pyrkii olemaan vakaa palvelinalusta, joten se ei kiirehdi sisällyttämään uusimpia versioita kaikesta.
Tämän artikkelin kirjoittamisesta lähtien CentOS 6 jakelee virallisesti LLVM & Clang v3.4.2:ta. Clang v3.6 on kuitenkin julkaistu.
Virallinen ehdotus on, että jos tarvitset uudemman version LLVM & Clangista, sinun tulee harkita erilaista UNIX-jakelua, joka keskittyy enemmän ohjelmistopakettien uusimpien versioiden tukemiseen.
Onneksi voit asentaa uudemman version LLVM & Clang GCC CentOS:ään. Tämä poikkeaa puhtaasti virallisesti jaettujen ohjelmistojen käytöstä, mutta joskus saatat tuntea, ettei sinulla ole juurikaan valinnanvaraa.
Tässä artikkelissa kuvataan, kuinka CentOS 6:n virallisesti tuettu versio LLVM & Clangista asennetaan ja uudempi versio asennetaan. Tässä artikkelissa oletetaan, että sinulla on juuri asennettu CentOS 6 VPS, mutta voit varmasti noudattaa jo käyttämäsi VPS:n ohjeita.
Clang on suurelta osin riippumaton GCC:stä, mutta tämän artikkelin kirjoittamisesta lähtien Clang käyttää edelleen useita GCC:n asentamia jaettuja kirjastoja (eli crtbegin.o, gcc, ja gcc_s). Jos asennat LLVM & Clangin CentOS 6:een, et voi kääntää mitään, jos järjestelmässäsi ei ole myös GCC:tä näitä jaettuja kirjastoja varten. Ihannetapauksessa yum olisi pakettiriippuvuus gcc:n ja gcc-c++:n clangille, mutta tätä artikkelia kirjoitettaessa yum ei ole tietoinen riippuvuudesta.
Lisäksi LLVM & Clangin uudemman version rakentaminen lähteestä vaatii G++ v4.7+:n, jonka saat vain CentOS 6:ssa asentamalla sen lähteen mukaan.
Jos suoritat kaikki alla olevat vaiheet, saat 2 versiota GCC:stä ja 2 versiota LLVM & Clangista. Tämä sisältää virallisesti tuetun vanhemman binaariversion ja uudemman version jokaiselle ohjelmalle. Kaikkia alla olevia vaiheita ei kuitenkaan tarvitse suorittaa. Voit päättää, haluatko virallisesti tuetun LLVM & Clangin binaarisen vanhemman version vai uudemman version lähdekoodista, ja suorita mikä tahansa ohjeiden osio, joka sopii päätökseesi.
TÄRKEÄ! Asenna ensin virallisesti tuettu (vanhempi) GCC-versio suorittamalla artikkelin GCC:n asentaminen CentOS 6:een vaiheet – sinun EI tarvitse suorittaa vaiheita artikkelin otsikossa "Asenna uudempi versio GCC:stä lähteestä" ".
Asenna LLVM & Clang
sudo yum install clang
--- This will bring in llvm as a dependency
Tarkista asennetut versiot ja katso niiden sijainnit.
clang --version
May say: clang version 3.4.2 (tags/RELEASE_34/dot2-final)
which clang
/usr/bin/clang
gcc --version
May say: gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)
g++ --version
May say: g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)
which gcc
/usr/bin/gcc
which g++
/usr/bin/g++
Jotta voit rakentaa LLVM & Clangin lähteen mukaan CentOS:ssä, sinulla on oltava GCC v4.7 tai uudempi. CentOS 6:n yum-versio ei ole näin korkea, joten sinun on ensin asennettava uudempi GCC lähdekoodista.
TÄRKEÄ! Asenna ensin GCC:n uudempi versio lähteestä suorittamalla artikkelin GCC:n asentaminen CentOS 6:een vaiheet – sinun on suoritettava kaikki artikkelin vaiheet, mukaan lukien otsikon "Asenna uudempi GCC-versio lähde".
Asenna tarvittavat lisäpaketit.
sudo yum install cmake
Asenna Pythonin uudempi versio. LLVM & Clang v3.6.0 vaatii Python v2.7+:n, mutta CentOS 6 yum -varastossa on vain Python v2.6.6.
mkdir ~/sourceInstallations
cd ~/sourceInstallations
wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
tar -xvf Python-2.7.9.tgz
cd Python-2.7.9
./configure && make && sudo make install
Päätä, minkä version LLVM & Clangista haluat. Tämä komento näyttää saatavilla olevien versioiden "tunnisteet".
svn ls http://llvm.org/svn/llvm-project/llvm/tags | grep RELEASE
RELEASE_1/
...
RELEASE_352/
RELEASE_360/
RELEASE_361/
svn ls http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_361
rc1/
--- At this time, there is no final, just a release candidate. You could certainly use a release candidate, but this article will show how to use a final release.
svn ls http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_360
final/
rc1/
rc2/
rc3/
rc4/
Hanki haluamasi LLVM & Clang -version lähde. Tämä kestää muutaman minuutin. Tämän artikkelin loput on kirjoitettu RELEASE_360/ja ladataan lähteet ~/sourceInstallations/llvm_RELEASE_360/-- Sinun on korvattava oikea tunniste, jotta se sopii tuleviin versioihin. Alla olevat hakemistot compiler-rt, libcxx, ja libcxxabieivät ole ehdottoman välttämättömiä, mutta sisältävät joitain LLVM & Clangin ominaisuuksia, joita GCC ei, joten ne sisältyvät tähän artikkeliin. Voit valita myös muita LLVM:n "aliprojekteja", kuten dragonegg, LLDB, OpenMB, vmkit, polly, libclc, klee, SAFECode ja lld. Voit lukea niistä LLVM:n verkkosivuilta .
cd ~/sourceInstallations
svn co http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_360/final llvm_RELEASE_360
cd llvm_RELEASE_360/tools
svn co http://llvm.org/svn/llvm-project/cfe/tags/RELEASE_360/final clang
cd ../projects
svn co http://llvm.org/svn/llvm-project/compiler-rt/tags/RELEASE_360/final compiler-rt
svn co http://llvm.org/svn/llvm-project/libcxx/tags/RELEASE_360/final libcxx
svn co http://llvm.org/svn/llvm-project/libcxxabi/tags/RELEASE_360/final libcxxabi
cd ..
svn update
At revision X.
--- Hopefully this outputs one line saying "At revision X", but numbers instead of "X". If it downloads more source files, a new revision was released while you were downloading the source code. This is highly unlikely unless you're using trunk (the most up to date, maybe unstable code.) But, if this happens, perform a svn update in the tools/clang, projects/compiler-rt, projects/libcxx, projects/libcxxabi, and again ~/sourceInstallations/llvm_RELEASE_360, until you are fully up to date.
Rakenna LLVM & Clang. Tämä kestää jonkin aikaa. Jos tämä valmistuu oikein, viimeisellä näkemäsi rivillä lukee "menestys". On normaalia, että jotkut virheen näköiset viestit vierivät ohi nopeasti. On aina hyvä idea rakentaa asiat eri hakemistoon kuin lähdehakemistoon.
mkdir ../llvm_RELEASE_360_build
cd ../llvm_RELEASE_360_build
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/local/bin/gcc -DCMAKE_CXX_COMPILER=/usr/local/bin/g++ ../llvm_RELEASE_360 && make && sudo make install && echo success
--- If your VPS has multiple cores, you can speed up the build by changing the middle part
--- of this line from "&& make &&" to "&& make -j <number of cores> &&".
--- You can see the number of cores your VPS has by running "nproc"
--- If you omit -DCMAKE_BUILD_TYPE=Release, the build defaults to debug. This is great if you need to debug LLVM & Clang itself, but slows down compilation of your end programs considerably.
--- If you omit the references to gcc and g++, it will default to using the older binary versions in /usr/bin/, and will not compile.
Tarkista asennetut versiot ja katso niiden sijainnit.
clang --version
May say: clang version 3.6.0 (tags/RELEASE_360/final 237229)
clang++ --version
May say: clang version 3.6.0 (tags/RELEASE_360/final 237229)
which clang
/usr/local/bin/clang
which clang++
/usr/local/bin/clang++
Lisää uudet kirjastot ld:hen (GNU-linkkeri).
echo "/usr/local/lib" > usrLocalLib.conf
sudo mv usrLocalLib.conf /etc/ld.so.conf.d/
sudo ldconfig
--- This may say a file or two "is not an ELF file - it has the wrong magic bytes at the start."
--- You may ignore this message. It is silent about the work it successfully completed.
Vaihtoehtoisesti voit tehdä "hello world" -ohjelman.
mkdir ~/code
cd ~/code
Create a file main.cpp that says:
#include <iostream>
using namespace std;
int main() {
cout << "Hello world!" << endl;
return 0;
}
--- One way to create this file is to run "vi main.cpp", hitting "i" to enter insert mode,
--- typing the above file, hitting ESC, and hitting "ZZ" to save.
clang++ main.cpp -o main
./main
Hello World!
clang++ -stdlib=libc++ -lc++abi main.cpp -o main
--- This uses Clang's libc++ and libc++abi, instead of the GNU stdlibc++ and stdlibc++abi
./main
Hello world!
Käytä LLVM & Clangia milloin haluat.
You could set LLVM & Clang to be your system's default C and C++ compiler by running:
echo "export CC=/usr/local/bin/gcc" >> ~/.bashrc
echo "export CXX=/usr/local/bin/g++" >> ~/.bashrc
source ~/.bashrc
Once and a while there is a difference between Clang and GCC, but it's becoming more and more rare. To be more conservative, you could specify in your code's buildsystem to use LLVM & Clang, but otherwise leave your system's default to the source build of GCC.
Valinnaisesti vapauttaa kiintolevytilaa. Oman ~/sourceInstallationskansion aloittamisesta noin 11FI levytilaa. Kansiot on luultavasti viisasta säilyttää, koska on olemassa valinnaisia konfigurointivaihtoehtoja, joita saatat joutua käyttämään jossain vaiheessa tulevaisuudessa, ja olisi nopeampaa, jos paljon olisi jo tehty. Ja kuten yllä mainittiin, LLVM & Clangiin voit lisätä muita "aliprojekteja". Lisäksi rakennusprosessi tekee lokeja, joita voit myöhemmin tarkistaa ja käyttää, jos jokin menee pieleen. Mutta kun olet suorittanut "sudo make install" aiemmin, asennettu LLVM & Clang ei ole riippuvainen mistään tässä hakemistossa, ja tilaa voi olla paljon, joten voit tehdä tämän vaiheen ja lunastaa 11 Gt takaisin.
cd ~/
rm -rf sourceInstallations
--- Again, if you can spare the space, you may someday be happy to have left it there.
Sinulla on nyt uudempi LLVM & Clang -tiedostosi /usr/local/bin, uudempi 64-bittinen LLVM & Clang -libsi /usr/local/libja uudempi LLVM & Clang sisältävät tiedostot muodossa /usr/local/include.
Tekoäly ei ole tulevaisuudessa, se tässä nykyisyydessä Tässä blogissa Lue kuinka tekoälysovellukset ovat vaikuttaneet eri sektoreihin.
Oletko myös DDOS-hyökkäysten uhri ja hämmentynyt ehkäisymenetelmistä? Lue tämä artikkeli ratkaistaksesi kysymyksesi.
Olet ehkä kuullut, että hakkerit ansaitsevat paljon rahaa, mutta oletko koskaan miettinyt, kuinka he ansaitsevat tuollaista rahaa? keskustellaan.
Haluatko nähdä Googlen vallankumouksellisia keksintöjä ja kuinka nämä keksinnöt muuttivat jokaisen ihmisen elämää nykyään? Lue sitten blogia nähdäksesi Googlen keksinnöt.
Konsepti itseohjautuvista autoista lähteä tielle tekoälyn avulla on ollut haaveena jo jonkin aikaa. Mutta useista lupauksista huolimatta niitä ei näy missään. Lue tämä blogi saadaksesi lisätietoja…
Kun tiede kehittyy nopeasti ja ottaa haltuunsa suuren osan ponnisteluistamme, myös riskit altistaa itsemme selittämättömälle singulariteetille kasvavat. Lue, mitä singulaarisuus voisi tarkoittaa meille.
Blogista saat tietää Big Data -arkkitehtuurin eri kerroksista ja niiden toiminnoista yksinkertaisimmalla tavalla.
Tietojen säilytystavat ovat kehittyneet mahdollisesti Datan syntymästä lähtien. Tämä blogi käsittelee tiedon tallennuksen kehitystä infografian pohjalta.
Tässä digitaalisessa maailmassa kodin älylaitteista on tullut tärkeä osa elämää. Tässä on muutamia älykkäiden kodin laitteiden hämmästyttäviä etuja, joiden avulla ne tekevät elämästämme elämisen arvoista ja yksinkertaisempaa.
Apple julkaisi äskettäin macOS Catalina 10.15.4 -lisäpäivityksen ongelmien korjaamiseksi, mutta näyttää siltä, että päivitys aiheuttaa lisää ongelmia, jotka johtavat mac-koneiden tiilikaamiseen. Lue tämä artikkeli saadaksesi lisätietoja