From da20db711bf51a5df8e3da749fd1e89166d29e03 Mon Sep 17 00:00:00 2001 From: Philippe Tillet Date: Mon, 17 Aug 2015 18:01:17 -0700 Subject: [PATCH] Tune: Further file hierarchy improvements --- include/isaac/driver/device.h | 2 + lib/driver/device.cpp | 28 +++++++++++-- lib/kernels/templates/base.cpp | 4 +- lib/kernels/templates/gemm.cpp | 39 +++++++++--------- lib/profiles/profiles.cpp | 1 + .../autotuning/external/deap/__init__.pyc | Bin 252 -> 0 bytes .../isaac/autotuning/external/deap/base.pyc | Bin 11553 -> 0 bytes .../autotuning/external/deap/creator.pyc | Bin 5802 -> 0 bytes .../external/deap/tools/__init__.pyc | Bin 809 -> 0 bytes .../external/deap/tools/crossover.pyc | Bin 16561 -> 0 bytes .../autotuning/external/deap/tools/emo.pyc | Bin 19065 -> 0 bytes .../autotuning/external/deap/tools/init.pyc | Bin 4179 -> 0 bytes .../external/deap/tools/migration.pyc | Bin 2777 -> 0 bytes .../external/deap/tools/mutation.pyc | Bin 8822 -> 0 bytes .../external/deap/tools/selection.pyc | Bin 8042 -> 0 bytes .../external/deap/tools/support.pyc | Bin 28300 -> 0 bytes .../{autotuning => external}/__init__.py | 0 .../external/sklearn/__init__.py | 0 .../external/sklearn/forest.py | 0 .../external/sklearn/setup.py | 0 .../{autotuning => }/external/sklearn/tree.py | 0 .../external/sklearn/utils.py | 0 python/setup.py | 4 +- python/src/bind/driver.cpp | 1 + python/src/bind/exceptions.cpp | 12 ++++++ python/src/bind/kernels.cpp | 8 ++-- tune/android/__init__.pyo | Bin 144 -> 0 bytes tune/android/main.py | 5 ++- tune/android/main.pyo | Bin 5593 -> 0 bytes tune/android/settings.pyo | Bin 144 -> 0 bytes .../android/tune}/__init__.py | 0 tune/android/tune/external/__init__.py | 0 .../android/tune}/external/deap/__init__.py | 0 .../android/tune}/external/deap/algorithms.py | 0 .../android/tune}/external/deap/base.py | 0 .../external/deap/benchmarks/__init__.py | 0 .../tune}/external/deap/benchmarks/binary.py | 0 .../tune}/external/deap/benchmarks/gp.py | 0 .../external/deap/benchmarks/movingpeaks.py | 0 .../tune}/external/deap/benchmarks/tools.py | 0 .../android/tune}/external/deap/cma.py | 0 .../android/tune}/external/deap/creator.py | 0 .../android/tune}/external/deap/gp.py | 0 .../tune}/external/deap/tests/__init__.py | 0 .../tune}/external/deap/tests/test_logbook.py | 0 .../tune}/external/deap/tests/test_pickle.py | 0 .../tune}/external/deap/tools/__init__.py | 0 .../tune}/external/deap/tools/crossover.py | 0 .../android/tune}/external/deap/tools/emo.py | 0 .../android/tune}/external/deap/tools/init.py | 0 .../tune}/external/deap/tools/migration.py | 0 .../tune}/external/deap/tools/mutation.py | 0 .../tune}/external/deap/tools/selection.py | 0 .../tune}/external/deap/tools/support.py | 0 .../autotuning => tune/android/tune}/model.py | 2 +- .../android/tune}/optimize.py | 21 +++++----- .../autotuning => tune/android/tune}/tools.py | 0 .../autotuning => tune/android/tune}/tune.py | 4 +- tune/main.py | 4 +- 59 files changed, 87 insertions(+), 48 deletions(-) delete mode 100644 python/isaac/autotuning/external/deap/__init__.pyc delete mode 100644 python/isaac/autotuning/external/deap/base.pyc delete mode 100644 python/isaac/autotuning/external/deap/creator.pyc delete mode 100644 python/isaac/autotuning/external/deap/tools/__init__.pyc delete mode 100644 python/isaac/autotuning/external/deap/tools/crossover.pyc delete mode 100644 python/isaac/autotuning/external/deap/tools/emo.pyc delete mode 100644 python/isaac/autotuning/external/deap/tools/init.pyc delete mode 100644 python/isaac/autotuning/external/deap/tools/migration.pyc delete mode 100644 python/isaac/autotuning/external/deap/tools/mutation.pyc delete mode 100644 python/isaac/autotuning/external/deap/tools/selection.pyc delete mode 100644 python/isaac/autotuning/external/deap/tools/support.pyc rename python/isaac/{autotuning => external}/__init__.py (100%) rename python/isaac/{autotuning => }/external/sklearn/__init__.py (100%) rename python/isaac/{autotuning => }/external/sklearn/forest.py (100%) rename python/isaac/{autotuning => }/external/sklearn/setup.py (100%) rename python/isaac/{autotuning => }/external/sklearn/tree.py (100%) rename python/isaac/{autotuning => }/external/sklearn/utils.py (100%) delete mode 100644 tune/android/__init__.pyo delete mode 100644 tune/android/main.pyo delete mode 100644 tune/android/settings.pyo rename {python/isaac/autotuning/external => tune/android/tune}/__init__.py (100%) create mode 100644 tune/android/tune/external/__init__.py rename {python/isaac/autotuning => tune/android/tune}/external/deap/__init__.py (100%) rename {python/isaac/autotuning => tune/android/tune}/external/deap/algorithms.py (100%) rename {python/isaac/autotuning => tune/android/tune}/external/deap/base.py (100%) rename {python/isaac/autotuning => tune/android/tune}/external/deap/benchmarks/__init__.py (100%) rename {python/isaac/autotuning => tune/android/tune}/external/deap/benchmarks/binary.py (100%) rename {python/isaac/autotuning => tune/android/tune}/external/deap/benchmarks/gp.py (100%) rename {python/isaac/autotuning => tune/android/tune}/external/deap/benchmarks/movingpeaks.py (100%) rename {python/isaac/autotuning => tune/android/tune}/external/deap/benchmarks/tools.py (100%) rename {python/isaac/autotuning => tune/android/tune}/external/deap/cma.py (100%) rename {python/isaac/autotuning => tune/android/tune}/external/deap/creator.py (100%) rename {python/isaac/autotuning => tune/android/tune}/external/deap/gp.py (100%) rename {python/isaac/autotuning => tune/android/tune}/external/deap/tests/__init__.py (100%) rename {python/isaac/autotuning => tune/android/tune}/external/deap/tests/test_logbook.py (100%) rename {python/isaac/autotuning => tune/android/tune}/external/deap/tests/test_pickle.py (100%) rename {python/isaac/autotuning => tune/android/tune}/external/deap/tools/__init__.py (100%) rename {python/isaac/autotuning => tune/android/tune}/external/deap/tools/crossover.py (100%) rename {python/isaac/autotuning => tune/android/tune}/external/deap/tools/emo.py (100%) rename {python/isaac/autotuning => tune/android/tune}/external/deap/tools/init.py (100%) rename {python/isaac/autotuning => tune/android/tune}/external/deap/tools/migration.py (100%) rename {python/isaac/autotuning => tune/android/tune}/external/deap/tools/mutation.py (100%) rename {python/isaac/autotuning => tune/android/tune}/external/deap/tools/selection.py (100%) rename {python/isaac/autotuning => tune/android/tune}/external/deap/tools/support.py (100%) rename {python/isaac/autotuning => tune/android/tune}/model.py (95%) rename {python/isaac/autotuning => tune/android/tune}/optimize.py (89%) rename {python/isaac/autotuning => tune/android/tune}/tools.py (100%) rename {python/isaac/autotuning => tune/android/tune}/tune.py (98%) diff --git a/include/isaac/driver/device.h b/include/isaac/driver/device.h index 3aeae9e15..3dd4faf6f 100644 --- a/include/isaac/driver/device.h +++ b/include/isaac/driver/device.h @@ -58,6 +58,8 @@ public: Vendor vendor() const; Architecture architecture() const; + std::string infos() const; + backend_type backend() const; size_t clock_rate() const; unsigned int address_bits() const; diff --git a/lib/driver/device.cpp b/lib/driver/device.cpp index 99a1c522f..fb95a5d00 100644 --- a/lib/driver/device.cpp +++ b/lib/driver/device.cpp @@ -1,5 +1,7 @@ -#include "isaac/driver/device.h" #include +#include + +#include "isaac/driver/device.h" #include "helpers/ocl/infos.hpp" namespace isaac @@ -19,13 +21,17 @@ int Device::cuGetInfo() const } Device::Device(int ordinal): backend_(CUDA), h_(backend_, true) -{ cuda::check(cuDeviceGet(h_.cu.get(), ordinal)); } +{ + cuda::check(cuDeviceGet(h_.cu.get(), ordinal)); +} #endif Device::Device(cl_device_id const & device, bool take_ownership) : backend_(OPENCL), h_(backend_, take_ownership) -{ h_.cl() = device; } +{ + h_.cl() = device; +} bool Device::operator==(Device const & other) const @@ -205,6 +211,22 @@ bool Device::fp64_support() const } } +std::string Device::infos() const +{ + std::ostringstream oss; + std::vector max_wi_sizes = max_work_item_sizes(); + + oss << "Platform: " << platform().name() << std::endl; + oss << "Vendor: " << vendor_str() << std::endl; + oss << "Name: " << name() << std::endl; + oss << "Maximum total work-group size: " << max_work_group_size() << std::endl; + oss << "Maximum individual work-group sizes: " << max_wi_sizes[0] << ", " << max_wi_sizes[1] << ", " << max_wi_sizes[2] << std::endl; + oss << "Local memory size: " << local_mem_size() << std::endl; + + return oss.str(); +} + +// Properties #ifdef ISAAC_WITH_CUDA #define CUDACASE(CUNAME) case CUDA: return cuGetInfo(); diff --git a/lib/kernels/templates/base.cpp b/lib/kernels/templates/base.cpp index 7d4f7caae..47e29c066 100644 --- a/lib/kernels/templates/base.cpp +++ b/lib/kernels/templates/base.cpp @@ -77,13 +77,13 @@ unsigned int base::temporary_workspace(expressions_tuple const &) const { return 0; } base::~base() -{ } +{ +} std::string base::generate(std::string const & suffix, expressions_tuple const & expressions, driver::Device const & device) { expressions_tuple::data_type::const_iterator sit; std::vector::iterator mit; - int err = is_invalid(expressions, device); if(err != 0) throw operation_not_supported_exception("The supplied parameters for this template are invalid : err " + tools::to_string(err)); diff --git a/lib/kernels/templates/gemm.cpp b/lib/kernels/templates/gemm.cpp index f2669c05c..045f5a3ed 100644 --- a/lib/kernels/templates/gemm.cpp +++ b/lib/kernels/templates/gemm.cpp @@ -22,7 +22,9 @@ gemm_parameters::gemm_parameters(unsigned int simd_width , unsigned int local_fetch_0, unsigned int local_fetch_1): base::parameters_type(simd_width, local_size_0, local_size_1, 1), kL(KL), depth(D), mS(ms), kS(ks), nS(ns), A_fetching_policy(A_fetching_policy), B_fetching_policy(B_fetching_policy), local_fetch_0(local_fetch_0), local_fetch_1(local_fetch_1), - mL(ms*local_size_0), nL(ns*local_size_1){} + mL(ms*local_size_0), nL(ns*local_size_1) +{ +} unsigned int gemm::lmem_usage(expressions_tuple const & expressions) const @@ -59,7 +61,6 @@ gemm_parameters::gemm_parameters(unsigned int simd_width if(p_.A_fetching_policy!=FETCH_FROM_LOCAL || p_.B_fetching_policy!=FETCH_FROM_LOCAL) return TEMPLATE_INVALID_FETCHING_POLICY_TYPE; - if ((p_.mS % p_.simd_width) > 0 || (p_.nS % p_.simd_width) > 0) return TEMPLATE_MS_NS_MUST_BE_SIMD_WIDTH_MULTIPLE; @@ -459,23 +460,23 @@ gemm_parameters::gemm_parameters(unsigned int simd_width stream << "}" << std::endl; - if(A_trans_=='N' || B_trans_=='T') - stream << "int Ky = K - idT.y;" << std::endl; - if(A_trans_=='T' || B_trans_=='N') - stream << "int Kx = K - idT.x;" << std::endl; +// if(A_trans_=='N' || B_trans_=='T') +// stream << "int Ky = K - idT.y;" << std::endl; +// if(A_trans_=='T' || B_trans_=='N') +// stream << "int Kx = K - idT.x;" << std::endl; - if(A_trans_=='N' || B_trans_=='T') - for(unsigned int k = 0; k < p_.kL; k += p_.local_fetch_1) - stream << "int condy" << k << " = " << k << " < Ky;" << std::endl; +// if(A_trans_=='N' || B_trans_=='T') +// for(unsigned int k = 0; k < p_.kL; k += p_.local_fetch_1) +// stream << "int condy" << k << " = " << k << " < Ky;" << std::endl; - if(A_trans_=='T' || B_trans_=='N') - { - for(unsigned int k = 0 ; k < p_.kL ; k += p_.local_fetch_0*p_.simd_width) - for(unsigned int s = 0 ; s < p_.simd_width ; ++s) - stream << "int condx" << k + s << " = " << k + s << " < Kx;" << std::endl; - } +// if(A_trans_=='T' || B_trans_=='N') +// { +// for(unsigned int k = 0 ; k < p_.kL ; k += p_.local_fetch_0*p_.simd_width) +// for(unsigned int s = 0 ; s < p_.simd_width ; ++s) +// stream << "int condx" << k + s << " = " << k + s << " < Kx;" << std::endl; +// } - fetch_to_lds(true); +// fetch_to_lds(true); stream << "//Write back C" << std::endl; stream << "M += ids.x;" << std::endl; @@ -567,9 +568,6 @@ gemm_parameters::gemm_parameters(unsigned int simd_width stream << "}" << std::endl; } - -// if(p_.simd_width>1) -// std::cout << stream.str() << std::endl; return stream.str(); #undef VLOAD @@ -746,7 +744,8 @@ gemm_parameters::gemm_parameters(unsigned int simd_width , fetching_policy_type Afetch , fetching_policy_type Bfetch , int_t lfetch0, int_t lfetch1, bool check_bound) : gemm(gemm_parameters(simd, ls0, KL, ls1, D, ms, ks, ns, Afetch, Bfetch, lfetch0, lfetch1), check_bound, 'N', 'N') - { } + { + } // gemm_tn::gemm_tn(unsigned int simd diff --git a/lib/profiles/profiles.cpp b/lib/profiles/profiles.cpp index e7fd36240..3008ed500 100644 --- a/lib/profiles/profiles.cpp +++ b/lib/profiles/profiles.cpp @@ -217,6 +217,7 @@ profiles::map_type& profiles::init(driver::CommandQueue const & queue) driver::Device const & device = queue.device(); presets_type::const_iterator it = presets_.find(std::make_tuple(device.type(), device.vendor(), device.architecture())); if(it==presets_.end()){ + //FIXME: Hadle this case // import(presets_.at(std::make_tuple(device.type(), device.vendor(), driver::Device::Architecture::UNKNOWN)), queue); } else diff --git a/python/isaac/autotuning/external/deap/__init__.pyc b/python/isaac/autotuning/external/deap/__init__.pyc deleted file mode 100644 index cb5c4de4600e5df874f696cf5114efa06ed79c43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 252 zcmYL@O^d=X5I`qZ#jj;=o;~)|?0OSKSLj|v+4a&(3}&E#HVI8y^mqFQoL0esc{6VY zhKcSUlhyfny1*+K)gMYfCn$i7$RJ~&dXV)%MerB*+x?i3{_YNof0U(<$i9;=KX}$; zxsTgXm=J`Jb;xZcM3{EkVCA(nV5nEkPX=b4gEOv diff --git a/python/isaac/autotuning/external/deap/base.pyc b/python/isaac/autotuning/external/deap/base.pyc deleted file mode 100644 index 27768b336839137d95b7e138926274eed54d8833..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11553 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 diff --git a/python/isaac/autotuning/external/deap/creator.pyc b/python/isaac/autotuning/external/deap/creator.pyc deleted file mode 100644 index 1c81c92b8cf5be05851b88afab037eff98ec5cb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5802 zcmcIo>uwvz6`mz2%3`HBb7Aiy1$KeLL7VhP^Cs;h6n&;XK>K}Xc1g)d+83hkZ-9^m3pq!hlf{`!GArspMY+ljzJfz z+RIfN%HSWXWNtrM=geV;JU{4Op(uX~lzKQZx<4(F{?Q*26VG;srHNfp9_iHTSWk_M zZ;#?3-kj+;%Zf#skF_hbEHiqT#nu|D-6VFMMVe)LG|xu-b)cIYlUQAh^jR@4wK*-a zxl4;Y7Fy$?OxKE3yqn@ruNjf|~^b(I}yT2{dY3kBb^RP7L2@jXVgJDon>Zfa;L{8H!dAQL$y@B`W;D(%Xm5kk={xN+PX4! zW}F(^)3dn5Zb)PoaXHn+%z>RxOo=IBg>sXh-A?*%{2jPWSTD-w)7e=Rmt}mmL}>#P zZ_~7IpfNBv5TV5G4MG7ZC5C|57GXd z#hPp+ovE1?LYlHhUCb+K?3?KAO^T`6n@s?^+05*{Yfep8%m})@)W-2}&&_kQXP!7y z=5e-17v8H}co!@QP@?+qDEb*lTC%3rt_9ZvF?DTjG4=N_Pl9;;eQ1#>70 zegz%6inxfN?Y>Q4mLKf zwl|s*HeQJ7RHvAwhmMcwropHU*nBGPiEP71_VZ!=d^9Ke2r9ASb#&n3l?f5MC8pDg zK76kX$t@mu^O-5b?_el;5jW!PJ1i38G5Qjhl2dCQuatEedZHnIL&6k7HN>OH*ixPY z3_L2UO9_zl*HlA2gGeG3qnSjoeT=JXYfT-uWv7?By0&WZtp(lxc5O+(+5MlF)>m9u zay9&10eAo5fMjuP#*!(E%j_oycaDn+fd~_^>j^r2H3aM z{^M;92zozw^qDy3Nn4c@dMJk5pCfru>d*L>S_HAYsSOH~(UP%xk1vb7Y~2M4m}2gH<`S16IWac1w|ep>iqbqq zQn{j=`s9=O4^B;US;j?aoTZ=O@aU6dh4>3zQyU*zWeJijSNr0ZWe)s;PIdtRRjD(G zQQHqpHEpId=Y53*P+gmYLW}~H+0aTGx*}j_@svzesP*o1XIJ<8BH~gfUZm~~$Z(^l z$y*QRDev;2o+g#McWy0LSLz{r2L+rugC7${fZEVyD7T?GOE3V};^h>e@*p2Hz2)Vp%}a*$U43WCF()nzz?QCkzRT+F z1q$52*SpXHC{YjHTb)X9e1s{@sDC6 zxlo$hc#Q7^JWDQURuO!d^x2QlJh{!A;<&m|uFH*r2#+cr(H>Dl79O*+ojf|P?1uShe#?c$H^wFix{aS?ZrT(m&J@ia-w`yAWvNoQhOnr{UbIvImi9b1`iXdeSIK%e}bvYPy#bJ zA6`BtMdnuO^>)w>wu7s|R^z4SX0Ww>ZR5MaM$lziB|PEFOff{c#}___-eHefY{>M` zapL{ytSH@kWr>#Q^u0Q_kXKT(`7-FInDpYI<9nAO85O(lgV&qPPVEoSv>ThjW~05? Y3^s#TAYU`sYPK5NuWmKAzq!@;4=G^GJpcdz diff --git a/python/isaac/autotuning/external/deap/tools/__init__.pyc b/python/isaac/autotuning/external/deap/tools/__init__.pyc deleted file mode 100644 index f7f35d12bf8d5a817c4a57a2023d85f6ce20b817..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 809 zcmYjPO^?$+44t;iE<}PO=Q&nrm7J*%LgGWq1$MRN!X=r`xEqVfIGSmI50LNwfS$Jw(G4lipI)up>V( zQZR8WjDMhr+;*wd!Z>OZK@SO>X3AW+9j|o)501nc!Nl>n3ybV1zrT!YUaSrnY zxyd}B{DJnY3b&Y!O2~wXPBmq4k334EsFl+pv?kcYOb42iB>J}~Gc|M1hA}bP)LiSQ z4sVS2-?v{(2WP>LE!bZ@VPFZ0Y7@nccJhYzw?5rT7eH{=e*$(e_pWiNB4q30Yz IVs^U!16X$QD*ylh diff --git a/python/isaac/autotuning/external/deap/tools/crossover.pyc b/python/isaac/autotuning/external/deap/tools/crossover.pyc deleted file mode 100644 index ebcb5e27d026019bd695d4700e93192d1dfee957..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16561 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 xlXB<|aecr&fbq3W`KBmBM=I+tD#oU8E( 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

Wy3mR++uVhn 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 diff --git a/python/isaac/autotuning/external/deap/tools/migration.pyc b/python/isaac/autotuning/external/deap/tools/migration.pyc deleted file mode 100644 index 932ebee88b1258bed169df7b93aa24ab29575f93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2777 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 diff --git a/python/isaac/autotuning/external/deap/tools/selection.pyc b/python/isaac/autotuning/external/deap/tools/selection.pyc deleted file mode 100644 index 94742da5b184952624940e3cc89618c7ad3847b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8042 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 diff --git a/python/isaac/autotuning/__init__.py b/python/isaac/external/__init__.py similarity index 100% rename from python/isaac/autotuning/__init__.py rename to python/isaac/external/__init__.py diff --git a/python/isaac/autotuning/external/sklearn/__init__.py b/python/isaac/external/sklearn/__init__.py similarity index 100% rename from python/isaac/autotuning/external/sklearn/__init__.py rename to python/isaac/external/sklearn/__init__.py diff --git a/python/isaac/autotuning/external/sklearn/forest.py b/python/isaac/external/sklearn/forest.py similarity index 100% rename from python/isaac/autotuning/external/sklearn/forest.py rename to python/isaac/external/sklearn/forest.py diff --git a/python/isaac/autotuning/external/sklearn/setup.py b/python/isaac/external/sklearn/setup.py similarity index 100% rename from python/isaac/autotuning/external/sklearn/setup.py rename to python/isaac/external/sklearn/setup.py diff --git a/python/isaac/autotuning/external/sklearn/tree.py b/python/isaac/external/sklearn/tree.py similarity index 100% rename from python/isaac/autotuning/external/sklearn/tree.py rename to python/isaac/external/sklearn/tree.py diff --git a/python/isaac/autotuning/external/sklearn/utils.py b/python/isaac/external/sklearn/utils.py similarity index 100% rename from python/isaac/autotuning/external/sklearn/utils.py rename to python/isaac/external/sklearn/utils.py diff --git a/python/setup.py b/python/setup.py index 89d33148c..9a047467e 100644 --- a/python/setup.py +++ b/python/setup.py @@ -143,7 +143,7 @@ def main(): libraries=libraries)] #External - extensions += [Extension('autotuning.external.sklearn._tree', + extensions += [Extension('external.sklearn._tree', ['external/sklearn/_tree.c'], include_dirs = [numpy_include])] @@ -155,7 +155,7 @@ def main(): author='Philippe Tillet', author_email='ptillet@g.harvard.edu', license='MPL 2.0', - packages=['isaac','isaac.autotuning', 'isaac.autotuning.external', 'isaac.autotuning.external.deap', 'isaac.autotuning.external.deap.tools', 'isaac.autotuning.external.sklearn'], + packages=['isaac','isaac.external','isaac.external.sklearn'], ext_package="isaac", ext_modules=extensions, cmdclass={'build_py': build_py, 'build_ext': build_ext_subclass}, diff --git a/python/src/bind/driver.cpp b/python/src/bind/driver.cpp index 290d2f998..d0de36da4 100644 --- a/python/src/bind/driver.cpp +++ b/python/src/bind/driver.cpp @@ -139,6 +139,7 @@ void export_driver() .add_property("platform", &sc::driver::Device::platform) .add_property("vendor", &sc::driver::Device::vendor) .add_property("nv_compute_capability", &detail::nv_compute_capability) + .add_property("infos", &sc::driver::Device::infos) ; bp::class_("context", bp::no_init) diff --git a/python/src/bind/exceptions.cpp b/python/src/bind/exceptions.cpp index c51f5d86c..fcb4e6287 100644 --- a/python/src/bind/exceptions.cpp +++ b/python/src/bind/exceptions.cpp @@ -92,4 +92,16 @@ void export_exceptions() wrap::exception("MemObjectAllocationFailure") .def("__str__", &isaac::driver::ocl::exception::mem_object_allocation_failure::what) ; + + wrap::exception("OutOfHostMemory") + .def("__str__", &isaac::driver::ocl::exception::out_of_host_memory::what) + ; + + wrap::exception("InvalidWorkGroupSize") + .def("__str__", &isaac::driver::ocl::exception::invalid_work_group_size::what) + ; + + wrap::exception("InvalidValue") + .def("__str__", &isaac::driver::ocl::exception::invalid_value::what) + ; } diff --git a/python/src/bind/kernels.cpp b/python/src/bind/kernels.cpp index d00fc5252..eb10fcf6a 100644 --- a/python/src/bind/kernels.cpp +++ b/python/src/bind/kernels.cpp @@ -29,11 +29,11 @@ void export_templates() bp::enum_ - ("fetching_policy_type"); + ("fetching_policy_type") + .value("FETCH_FROM_LOCAL", tpt::FETCH_FROM_LOCAL) + .value("FETCH_FROM_GLOBAL_STRIDED", tpt::FETCH_FROM_GLOBAL_STRIDED) + .value("FETCH_FROM_GLOBAL_CONTIGUOUS", tpt::FETCH_FROM_GLOBAL_CONTIGUOUS); - bp::scope().attr("FETCH_FROM_LOCAL") = tpt::FETCH_FROM_LOCAL; - bp::scope().attr("FETCH_FROM_GLOBAL_STRIDED") = tpt::FETCH_FROM_GLOBAL_CONTIGUOUS; - bp::scope().attr("FETCH_FROM_GLOBAL_CONTIGUOUS") = tpt::FETCH_FROM_GLOBAL_STRIDED; //Base { diff --git a/tune/android/__init__.pyo b/tune/android/__init__.pyo deleted file mode 100644 index b96cfac56dd33c6f4c1b1ea21cfad4e750fe7760..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 144 zcmZSn%*(aI_+n@>0~9aty>lR0 diff --git a/tune/android/main.py b/tune/android/main.py index 531b970fe..ef2fd7845 100644 --- a/tune/android/main.py +++ b/tune/android/main.py @@ -13,7 +13,7 @@ from kivy.uix.settings import SettingsWithNoMenu import isaac as sc import json -from isaac.autotuning.tune import tune +from tune.tune import do_tuning __version__ = '1.0' @@ -62,7 +62,8 @@ class IsaacApp(App): json_path = '' #FIXME: Move profiling logics into tuning sc.driver.default.queue_properties = sc.driver.PROFILING_ENABLE - tune(device, operation, json_path) + print device.infos + do_tuning(device, operation, json_path) def show_benchmark(self): pass diff --git a/tune/android/main.pyo b/tune/android/main.pyo deleted file mode 100644 index cbbd7ea3a97bb7f168452552cb9761ce1ea27550..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5593 zcmb_gT~i##6}>YH3k!=t5<;K0kmRUHsti$-kW>n*jD)^Qc&#+CUEYd3HQH%lU}k5T zo|Pbx@`5VKL;gX2RenqI?woUbmzApWWQ5ec-97zr=iYPAy*;)6%uN0D%YT2{)A*_B%hV`tnW|i{5fgQNq$z^X9sKZbJ9NNXEY=` zFZsN*=Y4-lvI~+gNPEHerzN{6?MwP5XkV80WoYUp|wVAqVIO@0LqpeP9?Lhc*?Axlsa`#ONZ(PHD zAEUV6p#qHGK(8YEbt!KS+IxZQh4LnlfATGB0^MWMaroZo5_f8;wK_$&vfXNl`p0Bg zGjV2)ohejtl0>i5WCyRy39b*l8>&=yP^&tdZEGVgcia*liB|46XszrPxn1e)rditS z*_93Z%4S6`$9XF$b+S@HRV#5fDT_2&$>X%U+&eN<@I@3y%}X#FoDY`NJ_JP+5nNHE z;zdzjB>fCsZ$QfUD9)VKr`!E3b80xyZ51OGON3Hw>FO%8w#LP6C zn)xgm-pm8jh98)gJFz@Kaa>Tru4>3*k+*^D2ratt;<~(rZDC6QMbK}`+nT(o$qzL- zxGe_@G@%id2py_Ep-k&ik@&t1B74 zvbyeQ4J|V4ReaZEq~)KE0Huy7O1o(lMW13oJJtzEBRw`(Yl z>Z*q-hFTT$(!r4a@fi)|{)Ea~6pjn~&~a-+$At-kfd?a=yn`#(C8=p+LXt6UOiD7Y zjfNz3ZA?irp^a&RgUVIECopKb2Pp1esJ!1tFozOA6w-AEmWM2Ua9mP=25_j8m+>;N z9c09R;OX!QAMK3;LSGP4a2VhV5+-A^H?0V35@B3WBgO!jy)#4_M!2%hIco=-@*R7# zoXg<3rFd((^N{lC*82K`#b>tc+RQEf5w2b;QLv@x^3LfT-S#hUm-k;SDelD+2-l%vxxOK@6*$Y(oMQ6A}QY7nI97yuQTTAjiz zsF;@wZrsSx9VKYg8Ys=65u6L=f*Zk=T8D4Sb6ILA?gc9F$=^ledmw)k`Nxo6HfUjm z1R%5rwJiak0QDcA<7@t`18Pk@!WlImHQYq(M9?S~xc=2;W4){W( zIyo3%0gMrrm|Xz9fqWYr0DmDcM5)#LcH=U69hcTKmy%J-bHE)=p;I7$ZKpesQ2ETq zB?^JqOGWtXLAmRc>UYdq)^=>y9`?$6Yv_2MplZQF4D{aa_OMcV)esl$`iNkzUr!gh|8DtEVtcimMbMo@eg4q8p9CNbRUzPJu{fOs*D^mtt?Kq{K;`p6X16P!#jsZvMP*1G z6=ia{ns`7Xy4bx=tIlpz70O^AS3PD0XFlS&6h(qdL5EVXa6nbkLBmHGXk~vw$~DFs zzB7DQ0E%R&C zDT;Wfr|ZT2s_@?E(^BO3Wp0xcY@PKvf=ct%j^3OY=xXYQ6Ddc9=_t@Cu>6#6^1*zg)^|HY|spPuD2|F5S3lC+E2f&qK2ITZGz!KO>QX z?XhrPWrX+_7~l|nebRLt4qS%WZ%eIKrB!B?U8Yp228q5(IfXe4U@QgA*)xs z_}mMb3Lbjc)G&G99y!Lab-?HI0e-0P`yY#$iy5zWi^cXL z(KlGWh`ef1#Y?Q~n6EKiMcGOb`>c7+J_+X$?rCOo*h}In*3?%)I0BvdoHH2dcqtvk zGGvwtLEVRAs+Xjn_nb%bJm#CPSZPosdf>(Q>R?Fv9|gG-$s>12I^SZ%k+LM53MK*; z{=0?NOt=ut1k>7|39g1n-h4nJ`!Yh3^Zsvy+%hws(G|c@j}Fr6D>NnJPHiUyu@hMs3adn_#)uI2KbJ` zZyP=aQ0sct*4(=6cR!jzRV{1&)6G4C-tnw!;T&!-!+$r~3Y+-2G8fjvg~{_13(uRu F{{RuMY@+}G diff --git a/tune/android/settings.pyo b/tune/android/settings.pyo deleted file mode 100644 index 668eedc1fa113e1b85ad4a345ea46ab646f2006d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 144 zcmZSn%*&Nxd@(ec0SXv_v;zBV{ll_eZN-8Q-T PDWy57b|5>7ftUdRmlz;M diff --git a/python/isaac/autotuning/external/__init__.py b/tune/android/tune/__init__.py similarity index 100% rename from python/isaac/autotuning/external/__init__.py rename to tune/android/tune/__init__.py diff --git a/tune/android/tune/external/__init__.py b/tune/android/tune/external/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/python/isaac/autotuning/external/deap/__init__.py b/tune/android/tune/external/deap/__init__.py similarity index 100% rename from python/isaac/autotuning/external/deap/__init__.py rename to tune/android/tune/external/deap/__init__.py diff --git a/python/isaac/autotuning/external/deap/algorithms.py b/tune/android/tune/external/deap/algorithms.py similarity index 100% rename from python/isaac/autotuning/external/deap/algorithms.py rename to tune/android/tune/external/deap/algorithms.py diff --git a/python/isaac/autotuning/external/deap/base.py b/tune/android/tune/external/deap/base.py similarity index 100% rename from python/isaac/autotuning/external/deap/base.py rename to tune/android/tune/external/deap/base.py diff --git a/python/isaac/autotuning/external/deap/benchmarks/__init__.py b/tune/android/tune/external/deap/benchmarks/__init__.py similarity index 100% rename from python/isaac/autotuning/external/deap/benchmarks/__init__.py rename to tune/android/tune/external/deap/benchmarks/__init__.py diff --git a/python/isaac/autotuning/external/deap/benchmarks/binary.py b/tune/android/tune/external/deap/benchmarks/binary.py similarity index 100% rename from python/isaac/autotuning/external/deap/benchmarks/binary.py rename to tune/android/tune/external/deap/benchmarks/binary.py diff --git a/python/isaac/autotuning/external/deap/benchmarks/gp.py b/tune/android/tune/external/deap/benchmarks/gp.py similarity index 100% rename from python/isaac/autotuning/external/deap/benchmarks/gp.py rename to tune/android/tune/external/deap/benchmarks/gp.py diff --git a/python/isaac/autotuning/external/deap/benchmarks/movingpeaks.py b/tune/android/tune/external/deap/benchmarks/movingpeaks.py similarity index 100% rename from python/isaac/autotuning/external/deap/benchmarks/movingpeaks.py rename to tune/android/tune/external/deap/benchmarks/movingpeaks.py diff --git a/python/isaac/autotuning/external/deap/benchmarks/tools.py b/tune/android/tune/external/deap/benchmarks/tools.py similarity index 100% rename from python/isaac/autotuning/external/deap/benchmarks/tools.py rename to tune/android/tune/external/deap/benchmarks/tools.py diff --git a/python/isaac/autotuning/external/deap/cma.py b/tune/android/tune/external/deap/cma.py similarity index 100% rename from python/isaac/autotuning/external/deap/cma.py rename to tune/android/tune/external/deap/cma.py diff --git a/python/isaac/autotuning/external/deap/creator.py b/tune/android/tune/external/deap/creator.py similarity index 100% rename from python/isaac/autotuning/external/deap/creator.py rename to tune/android/tune/external/deap/creator.py diff --git a/python/isaac/autotuning/external/deap/gp.py b/tune/android/tune/external/deap/gp.py similarity index 100% rename from python/isaac/autotuning/external/deap/gp.py rename to tune/android/tune/external/deap/gp.py diff --git a/python/isaac/autotuning/external/deap/tests/__init__.py b/tune/android/tune/external/deap/tests/__init__.py similarity index 100% rename from python/isaac/autotuning/external/deap/tests/__init__.py rename to tune/android/tune/external/deap/tests/__init__.py diff --git a/python/isaac/autotuning/external/deap/tests/test_logbook.py b/tune/android/tune/external/deap/tests/test_logbook.py similarity index 100% rename from python/isaac/autotuning/external/deap/tests/test_logbook.py rename to tune/android/tune/external/deap/tests/test_logbook.py diff --git a/python/isaac/autotuning/external/deap/tests/test_pickle.py b/tune/android/tune/external/deap/tests/test_pickle.py similarity index 100% rename from python/isaac/autotuning/external/deap/tests/test_pickle.py rename to tune/android/tune/external/deap/tests/test_pickle.py diff --git a/python/isaac/autotuning/external/deap/tools/__init__.py b/tune/android/tune/external/deap/tools/__init__.py similarity index 100% rename from python/isaac/autotuning/external/deap/tools/__init__.py rename to tune/android/tune/external/deap/tools/__init__.py diff --git a/python/isaac/autotuning/external/deap/tools/crossover.py b/tune/android/tune/external/deap/tools/crossover.py similarity index 100% rename from python/isaac/autotuning/external/deap/tools/crossover.py rename to tune/android/tune/external/deap/tools/crossover.py diff --git a/python/isaac/autotuning/external/deap/tools/emo.py b/tune/android/tune/external/deap/tools/emo.py similarity index 100% rename from python/isaac/autotuning/external/deap/tools/emo.py rename to tune/android/tune/external/deap/tools/emo.py diff --git a/python/isaac/autotuning/external/deap/tools/init.py b/tune/android/tune/external/deap/tools/init.py similarity index 100% rename from python/isaac/autotuning/external/deap/tools/init.py rename to tune/android/tune/external/deap/tools/init.py diff --git a/python/isaac/autotuning/external/deap/tools/migration.py b/tune/android/tune/external/deap/tools/migration.py similarity index 100% rename from python/isaac/autotuning/external/deap/tools/migration.py rename to tune/android/tune/external/deap/tools/migration.py diff --git a/python/isaac/autotuning/external/deap/tools/mutation.py b/tune/android/tune/external/deap/tools/mutation.py similarity index 100% rename from python/isaac/autotuning/external/deap/tools/mutation.py rename to tune/android/tune/external/deap/tools/mutation.py diff --git a/python/isaac/autotuning/external/deap/tools/selection.py b/tune/android/tune/external/deap/tools/selection.py similarity index 100% rename from python/isaac/autotuning/external/deap/tools/selection.py rename to tune/android/tune/external/deap/tools/selection.py diff --git a/python/isaac/autotuning/external/deap/tools/support.py b/tune/android/tune/external/deap/tools/support.py similarity index 100% rename from python/isaac/autotuning/external/deap/tools/support.py rename to tune/android/tune/external/deap/tools/support.py diff --git a/python/isaac/autotuning/model.py b/tune/android/tune/model.py similarity index 95% rename from python/isaac/autotuning/model.py rename to tune/android/tune/model.py index 18cb5c370..5d5c94f4b 100644 --- a/python/isaac/autotuning/model.py +++ b/tune/android/tune/model.py @@ -1,4 +1,4 @@ -from external.sklearn.forest import RandomForestRegressor +from isaac.external.sklearn.forest import RandomForestRegressor import numpy as np def gmean(a, axis=0, dtype=None): diff --git a/python/isaac/autotuning/optimize.py b/tune/android/tune/optimize.py similarity index 89% rename from python/isaac/autotuning/optimize.py rename to tune/android/tune/optimize.py index aa6c5a4f4..b0cfd99a4 100644 --- a/python/isaac/autotuning/optimize.py +++ b/tune/android/tune/optimize.py @@ -13,10 +13,12 @@ from numpy import cumsum import tools -fetch_types = [sc.templates.FETCH_FROM_GLOBAL_CONTIGUOUS, - sc.templates.FETCH_FROM_GLOBAL_STRIDED, - sc.templates.FETCH_FROM_LOCAL, - sc.templates.FETCH_FROM_LOCAL] +fetch_types = [sc.templates.fetching_policy_type.FETCH_FROM_GLOBAL_CONTIGUOUS, + sc.templates.fetching_policy_type.FETCH_FROM_GLOBAL_STRIDED, + sc.templates.fetching_policy_type.FETCH_FROM_LOCAL, + sc.templates.fetching_policy_type.FETCH_FROM_LOCAL] + +to_catch = (sc.OperationNotSupported, sc.LaunchOutOfResources, sc.MemObjectAllocationFailure, sc.InvalidWorkGroupSize, sc.OutOfHostMemory, sc.InvalidValue) def exhaustive(template, sizes, context): tree, _ = tools.tree_of(template, sizes, context) @@ -33,7 +35,7 @@ def exhaustive(template, sizes, context): time = tools.benchmark(template, parameters, tree) if not best or time < best[1]: best = parameters, time - except (sc.OperationNotSupported, sc.LaunchOutOfResources, sc.MemObjectAllocationFailure): + except to_catch: pass if best: stdout.write('%.2f %% | Best %.2f [ for %s ]\r'%(float(idx*100)/len(ranges),metric(sizes, best[1]), best[0])) @@ -73,7 +75,6 @@ def genetic(template, sizes, context, naccept=200, niter = 1000, cxpb=0.4, mutpb def evaluate(genome): idx = tuple(genome) if idx not in cache: - print decode(genome) cache[idx] = tools.benchmark(template, decode(genome), tree) return cache[idx], @@ -100,7 +101,7 @@ def genetic(template, sizes, context, naccept=200, niter = 1000, cxpb=0.4, mutpb try: individual.fitness.values = toolbox.evaluate(genome) population += [individual] - except (sc.OperationNotSupported, sc.LaunchOutOfResources, sc.MemObjectAllocationFailure ): + except to_catch: pass genome = encode(list(initializer.next())) hof.update(population) @@ -134,7 +135,7 @@ def genetic(template, sizes, context, naccept=200, niter = 1000, cxpb=0.4, mutpb #Reproduction else: offspring += [random.choice(population)] - except (sc.OperationNotSupported, sc.LaunchOutOfResources, sc.MemObjectAllocationFailure): + except to_catch: pass @@ -173,7 +174,7 @@ def is_local_optimum(parameters, template, sizes, context): #Evaluate the provided parameters guess try: reference = tools.benchmark(template, parameters, tree) - except (sc.OperationNotSupported, sc.LaunchOutOfResources, sc.MemObjectAllocationFailure): + except to_catch: return False #Latency bound -- ignore @@ -190,7 +191,7 @@ def is_local_optimum(parameters, template, sizes, context): time = tools.benchmark(template, x, tree) if time/reference < .97: return False - except (sc.OperationNotSupported, sc.LaunchOutOfResources, sc.MemObjectAllocationFailure): + except to_catch: pass return True diff --git a/python/isaac/autotuning/tools.py b/tune/android/tune/tools.py similarity index 100% rename from python/isaac/autotuning/tools.py rename to tune/android/tune/tools.py diff --git a/python/isaac/autotuning/tune.py b/tune/android/tune/tune.py similarity index 98% rename from python/isaac/autotuning/tune.py rename to tune/android/tune/tune.py index 84fa0b90a..ae9ac40ac 100644 --- a/python/isaac/autotuning/tune.py +++ b/tune/android/tune/tune.py @@ -4,7 +4,7 @@ from itertools import chain, product from numpy import argsort, argmax from operator import mul import isaac as sc -from external.sklearn.forest import RandomForestRegressor +from isaac.external.sklearn.forest import RandomForestRegressor import optimize, tools, model from json import encoder import json @@ -21,7 +21,7 @@ def pow2range(a, b): return [2**x for x in range(a, b)] -def tune(device, operation, json_path): +def do_tuning(device, operation, json_path): #Context context = sc.driver.context(device) diff --git a/tune/main.py b/tune/main.py index 459b45a73..c76e1b2a3 100644 --- a/tune/main.py +++ b/tune/main.py @@ -1,6 +1,6 @@ import argparse import isaac as sc -from isaac.autotuning.tune import tune +from tune.tune import do_tuning def parse_arguments(): platforms = sc.driver.get_platforms() @@ -32,4 +32,4 @@ def parse_arguments(): if __name__ == "__main__": sc.driver.default.queue_properties = sc.driver.PROFILING_ENABLE args = parse_arguments() - tune(*args) + do_tuning(*args)