Skip to content

Commit

Permalink
Merge pull request apache#10 from javelinjs/scala-package-cc
Browse files Browse the repository at this point in the history
add NDArray sqrt function, load the function on osx successfully
  • Loading branch information
terrytangyuan committed Dec 23, 2015
2 parents bdb6d70 + 3e1f8bb commit 7b83f94
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 5 deletions.
9 changes: 9 additions & 0 deletions scala-package/core/src/main/scala/ml/dmlc/mxnet/NDArray.scala
Original file line number Diff line number Diff line change
Expand Up @@ -250,6 +250,15 @@ object NDArray {
NDArray._genericNDArrayFunction("clip", Array(array, min, max))(0)
}

/**
* Take sqrt of the src
* @param src Source input to the function
* @return new [[NDArray]]
*/
def sqrt(src: NDArray): NDArray = {
NDArray._unaryNDArrayFunction("sqrt", src)
}

/**
* Create a new NDArray that copies content from source_array.
* @param sourceArr Source data to create NDArray from.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,4 +90,10 @@ class NDArraySuite extends FunSuite with BeforeAndAfterAll {
ndarray.set(Array(1f, 2f, 3f, 4f, 5f, 6f))
assert(NDArray.clip(ndarray, 2f, 5f).toArray === Array(2f, 2f, 3f, 4f, 5f, 5f))
}

test("sqrt") {
val ndarray = NDArray.empty(4, 1)
ndarray.set(Array(0f, 1f, 4f, 9f))
assert(NDArray.sqrt(ndarray).toArray === Array(0f, 1f, 2f, 3f))
}
}
32 changes: 27 additions & 5 deletions scala-package/native/osx-x86_64/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@
<name>MXNet Scala Package - Native OSX-x86_64</name>
<url>http://maven.apache.org</url>

<properties>
<opencv.pkg.tmpfile>opencv.pkg.txt</opencv.pkg.tmpfile>
</properties>

<packaging>jnilib</packaging>

<dependencies>
Expand Down Expand Up @@ -66,9 +70,15 @@
<isset property="cxx" />
</not>
<then>
<property name="cxx" value="clang++" />
<property name="cxx" value="g++" />
</then>
</if>
<!-- echo opencv libs to a temp file and then load it into a property -->
<exec executable="pkg-config" output="${opencv.pkg.tmpfile}" failonerror="true">
<arg line="--libs opencv" />
</exec>
<loadfile srcfile="${opencv.pkg.tmpfile}" property="ldflags.opencv" />
<delete file="${opencv.pkg.tmpfile}" />
</tasks>
</configuration>
</execution>
Expand All @@ -93,6 +103,14 @@
</fileNames>
</source>
</sources>
<compilerStartOptions>
<compilerStartOption>-std=c++0x</compilerStartOption>
</compilerStartOptions>
<compilerMiddleOptions>
<compilerMiddleOption>
-msse3 -funroll-loops -Wno-unused-parameter -Wno-unknown-pragmas
</compilerMiddleOption>
</compilerMiddleOptions>
<compilerEndOptions>
<compilerEndOption>-I../../../include</compilerEndOption>
<compilerEndOption>-I../../../dmlc-core/include</compilerEndOption>
Expand All @@ -101,15 +119,19 @@
<compilerEndOption>-DMSHADOW_USE_CBLAS=${use.cblas}</compilerEndOption>
<compilerEndOption>-DMSHADOW_USE_MKL=${use.mkl}</compilerEndOption>
<compilerEndOption>-fPIC</compilerEndOption>
<compilerEndOption>-std=c++11</compilerEndOption>
</compilerEndOptions>
<linkerStartOptions>
<linkerStartOption>-shared</linkerStartOption>
</linkerStartOptions>
<linkerMiddleOptions>
<linkerMiddleOption>-dynamiclib</linkerMiddleOption>
<linkerMiddleOption>../../../lib/libmxnet.a</linkerMiddleOption>
<linkerMiddleOption>-fopenmp</linkerMiddleOption>
<linkerMiddleOption>-lm</linkerMiddleOption>
<linkerMiddleOption>-framework Accelerate ${ldflags.opencv}</linkerMiddleOption>
<linkerMiddleOption>-framework JavaVM ${ldflags.blas}</linkerMiddleOption>
<linkerMiddleOption>-Wl,-dead_strip</linkerMiddleOption>
<linkerMiddleOption>-Wl,-exported_symbol,_Java_*</linkerMiddleOption>
<linkerMiddleOption>-Wl,-x</linkerMiddleOption>
<linkerMiddleOption>../../../dmlc-core/libdmlc.a</linkerMiddleOption>
<linkerMiddleOption>-force_load ../../../lib/libmxnet.a</linkerMiddleOption>
</linkerMiddleOptions>
</configuration>

Expand Down
4 changes: 4 additions & 0 deletions tests/travis/run_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,10 @@ fi


if [ ${TASK} == "scala_test" ]; then
if [ ${TRAVIS_OS_NAME} == "osx" ]; then
LIB_GOMP_PATH=`find /usr/local/lib -name libgomp.dylib | grep -v i386 | head -n1`
ln -sf $LIB_GOMP_PATH /usr/local/lib/libgomp.dylib
fi
make all || exit -1
# use cached dir for storing data
rm -rf ${PWD}/data
Expand Down

0 comments on commit 7b83f94

Please sign in to comment.