{"id":1730,"date":"2018-02-17T16:41:44","date_gmt":"2018-02-17T07:41:44","guid":{"rendered":"http:\/\/research.itplants.com\/?p=1730"},"modified":"2018-02-17T16:42:24","modified_gmt":"2018-02-17T07:42:24","slug":"rpi%e3%81%a7halide","status":"publish","type":"post","link":"https:\/\/research.itplants.com\/?p=1730","title":{"rendered":"RPI\u3067Halide"},"content":{"rendered":"<p>Halide\u306f\u3001\u753b\u5546\u51e6\u7406\u3092\u81ea\u52d5\u7684\u306b\u4e26\u5217\u5316\u3068\u304bGPU\u5229\u7528\u3068\u304b\u3057\u3066\u3001\u9ad8\u901f\u5316\u3057\u3066\u304f\u308c\u308b\u3082\u306e\u3089\u3057\u3044\u3002Raspberry Pi\u3067\u306e\u753b\u50cf\u51e6\u7406\u306f\u65e9\u304f\u306f\u306a\u3044\u306e\u3067\u3001\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n<p>\u307e\u305a\u3001 Halide\u306e\u30d0\u30a4\u30ca\u30ea\u30fc\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u307e\u3059\u3002\u3053\u308c\u306f\u3001Arm7\u7528\u3089\u3057\u304f\u3063\u3066\u3001Raspberry Pi Zero WH\u3067\u306f\u52d5\u4f5c\u3057\u307e\u305b\u3093\u3067\u3057\u305f\u3002Raspberry Pi Model 3\u3092\u4f7f\u3044\u307e\u3059\u3002<\/p>\n<p> wget https:\/\/github.com\/halide\/Halide\/releases\/download\/release_2018_02_15\/halide-arm32-linux-32-trunk-46d8e9e0cdae456489f1eddfd6d829956fc3c843.tgz<\/p>\n<p>\u89e3\u51cd\u3057\u307e\u3059\u3002<br \/>\ntar zxvf halide-arm32-linux-32-trunk-46d8e9e0cdae456489f1eddfd6d829956fc3c843.tgz<\/p>\n<p>\u30b3\u30f3\u30d1\u30a4\u30eb\u524d\u306e\u8a2d\u5b9a<br \/>\nexport LD_LIBRARY_PATH=\/home\/pi\/src\/halide\/bin <\/p>\n<p>sudo apt-get install libpng12-dev<br \/>\nsudo apt-get install libjpeg-dev<\/p>\n<p>\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u306e\u30b3\u30f3\u30d1\u30a4\u30eb<br \/>\ncd Halide\/tutorial<\/p>\n<p>g++ lesson_01__basics.cpp  -g -std=c++11 -fno-rtti -I ..\/include -I ..\/tools -L ..\/bin -lHalide -lpthread -ldl -o lesson_01_basics<\/p>\n<p>g++ lesson_02_input_image.cpp  -g -std=c++11 -fno-rtti -I ..\/include -I ..\/tools -L ..\/bin -lHalide -lpthread -ldl -ljpeg -lpng -o lesson_02_input_image<\/p>\n<p>g++ lesson_03_debugging_1.cpp  -g -std=c++11 -fno-rtti -I ..\/include -I ..\/tools -L ..\/bin -lHalide -lpthread -ldl -ljpeg -lpng -o lesson_03_debugging_1<\/p>\n<p>g++ lesson_04_debugging_2.cpp  -g -std=c++11 -fno-rtti -I ..\/include -I ..\/tools -L ..\/bin -lHalide -lpthread -ldl -ljpeg -lpng -o lesson_04_debugging_2<\/p>\n<p> g++ lesson_05_scheduling_1.cpp -g -std=c++11 -fno-rtti -I ..\/include -I ..\/tools -L ..\/bin -lHalide -lpthread -ldl -ljpeg -lpng -o lesson_05_scheduling_1<\/p>\n<p>g++ lesson_06_realizing_over_shifted_domains.cpp -g -std=c++11 -fno-rtti -I ..\/include -I ..\/tools -L ..\/bin -lHalide -lpthread -ldl -ljpeg -lpng -o lesson_06_realizing_over_shifted_domains<\/p>\n<p>g++ lesson_07_multi_stage_pipelines.cpp -g -std=c++11 -fno-rtti -I ..\/include -I ..\/tools -L ..\/bin -lHalide -lpthread -ldl -ljpeg -lpng -o lesson_07_multi_stage_pipelines<\/p>\n<p>g++ lesson_08_scheduling_2.cpp -g -std=c++11 -fno-rtti -I ..\/include -I ..\/tools -L ..\/bin -lHalide -lpthread -ldl -ljpeg -lpng -o lesson_08_scheduling_2<\/p>\n<p>g++ lesson_09_update_definitions.cpp -g -std=c++11 -fno-rtti -I ..\/include -I ..\/tools -L ..\/bin -lHalide -lpthread -ldl -ljpeg -lpng -o lesson_09_update_definitions<\/p>\n<p>g++ lesson_10_aot_compilation_run.cpp -g -std=c++11 -fno-rtti -I ..\/include -I ..\/tools -L ..\/bin -lHalide -lpthread -ldl -ljpeg -lpng -o lesson_10_aot_compilation_run<\/p>\n<p>\/tmp\/ccfyV2RC.o: In function `main&#8217;:<br \/>\n\/home\/pi\/src\/halide\/tutorial\/lesson_10_aot_compilation_run.cpp:50: undefined reference to `brighter&#8217;<\/p>\n<p> g++ lesson_11_cross_compilation.cpp  -g -std=c++11 -fno-rtti -I ..\/include -I ..\/tools -L ..\/bin -lHalide -lpthread -ldl -ljpeg -lpng -o lesson_11_cross_compilation<\/p>\n<p>g++ lesson_12_using_the_gpu.cpp  -g -std=c++11 -fno-rtti -I ..\/include -I ..\/tools -L ..\/bin -lHalide -lpthread -ldl -ljpeg -lpng -o lesson_12_using_the_gpu<\/p>\n<p>g++ lesson_13_tuples.cpp  -g -std=c++11 -fno-rtti -I ..\/include -I ..\/tools -L ..\/bin -lHalide -lpthread -ldl -ljpeg -lpng -o lesson_13_tuples<\/p>\n<p>g++ lesson_15*.cpp ..\/tools\/GenGen.cpp -g -std=c++11 -fno-rtti -I ..\/include -L ..\/bin -lHalide -lpthread -ldl -o lesson_15_generate<\/p>\n<p> g++ lesson_16_rgb_generate.cpp  ..\/tools\/GenGen.cpp  -g -std=c++11 -fno-rtti -I ..\/include -I ..\/tools -L ..\/bin -lHalide -lpthread -ldl -ljpeg -lpng -o lesson_16_rgb_generate<\/p>\n<p>g++ lesson_17_predicated_rdom.cpp  -g -std=c++11 -fno-rtti -I ..\/include -I ..\/tools -L ..\/bin -lHalide -lpthread -ldl -ljpeg -lpng -o lesson_17_predicated_rdom<\/p>\n<p>g++ lesson_18_parallel_associative_reductions.cpp  -g -std=c++11 -fno-rtti -I ..\/include -I ..\/tools -L ..\/bin -lHalide -lpthread -ldl -ljpeg -lpng -o lesson_18_parallel_associative_reductions<\/p>\n<p>g++ lesson_19_wrapper_funcs.cpp  -g -std=c++11 -fno-rtti -I ..\/include -I ..\/tools -L ..\/bin -lHalide -lpthread -ldl -ljpeg -lpng -o lesson_19_wrapper_funcs<\/p>\n<p>g++ lesson_20_cloning_funcs.cpp  -g -std=c++11 -fno-rtti -I ..\/include -I ..\/tools -L ..\/bin -lHalide -lpthread -ldl -ljpeg -lpng -o lesson_20_cloning_funcs<\/p>\n<p>openCL\u4f9d\u5b58\u90e8\u5206\u4ee5\u5916\u306f\u3001\u52d5\u4f5c\u3057\u3066\u3044\u308b\u307f\u305f\u3044\u3067\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Halide\u306f\u3001\u753b\u5546\u51e6\u7406\u3092\u81ea\u52d5\u7684\u306b\u4e26\u5217\u5316\u3068\u304bGPU\u5229\u7528\u3068\u304b\u3057\u3066\u3001\u9ad8\u901f\u5316\u3057\u3066\u304f\u308c\u308b\u3082\u306e\u3089\u3057\u3044\u3002Raspberry Pi\u3067\u306e\u753b\u50cf\u51e6\u7406\u306f\u65e9\u304f\u306f\u306a\u3044\u306e\u3067\u3001\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\u3002 \u307e\u305a\u3001 Halide\u306e\u30d0\u30a4\u30ca\u30ea\u30fc\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u307e\u3059\u3002\u3053&#8230;<\/p>\n<p><a class=\"more\" href=\"https:\/\/research.itplants.com\/?p=1730\"> Read more &rarr;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/research.itplants.com\/index.php?rest_route=\/wp\/v2\/posts\/1730"}],"collection":[{"href":"https:\/\/research.itplants.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/research.itplants.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/research.itplants.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/research.itplants.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1730"}],"version-history":[{"count":2,"href":"https:\/\/research.itplants.com\/index.php?rest_route=\/wp\/v2\/posts\/1730\/revisions"}],"predecessor-version":[{"id":1732,"href":"https:\/\/research.itplants.com\/index.php?rest_route=\/wp\/v2\/posts\/1730\/revisions\/1732"}],"wp:attachment":[{"href":"https:\/\/research.itplants.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1730"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/research.itplants.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1730"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/research.itplants.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1730"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}